GNU/Linux >> Linux の 問題 >  >> Debian

Debian10/11でSSLを暗号化してNginxを保護する

概要

次の投稿では、Debian 10マシンでLet’s Encrypt SSLを使用してNginxを保護する方法について説明します(この手順はDebian 11にも適用できます)。この投稿では、Debianマシンにcertbotをインストールし、Let’s EncryptからSSL証明書を取得し、自動HTTPSリダイレクトを設定し、証明書の更新もテストする必要があるシナリオを紹介します。ここでは、NginxがプリインストールされたDebianマシンがすでにあり、SSLを暗号化してnginxを保護する方法の手順を実行します。

要件

1..Debianサーバーを指すドメイン名を登録して有効にします。

2 .. Debian 10サーバー(またはDebian 11サーバー)

3 ..NginxWebサーバーがインストールされて実行されている

4 ..ファイアウォール構成(HTTPおよびHTTPSポートを開く)

UFWまたはIPTABLESファイアウォールを使用している場合は、Webサイトをホストするだけでなく、HTTPおよびHTTPS用にポート80および443を開くように構成する必要があります

UFW

sudo ufw allow http
sudo ufw allow https

IPTABLES

sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT

sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT

or

sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT

Certbotのインストール

Let’s EncryptツールのCerbotを使用して、SSL証明書とcertbot用のNginxプラグインも取得します。どちらのツールも、証明書を非常に簡単かつ迅速に取得し、Nginxで必要な構成変更を行うのに役立ちます。さらに、ツールには自動化機能があるため、SSLの有効期限が切れると、証明書を更新して再度インストールできます。

sudo apt install certbot python3-certbot-nginx

Let’sEncryptからSSL証明書を取得する

ファイアウォールのポートが開いていることを確認し、certbotのインストールを完了したら。 Let's EncryptからSSL証明書を取得するには、コマンドで実行する必要があります:

sudo certbot --nginx -d yourdomain.com

注–コマンドを実行する前に、まずnginx構成ファイルに、サーバーを指定した実際のドメイン名をserver_nameパラメーターに書き込む必要があります。 Certbotは、そのパラメーターのサーバーブロック構成を調べ、そのパラメーターに従って構成ファイルを暗号化しましょう。次の図の例:

sudo nano /etc/nginx/sites-available/example.com

このコマンドを実行すると、certbotウィザードが起動します。初めてcerbotを実行する場合は、最初に連絡先として使用するメールアドレスを提供し、Let’sEncryptのライセンス条項に同意するよう求められます。

その後、httpチャレンジを実行し、証明書を取得します。最後に、httpsリダイレクトをすぐに構成するかどうかを尋ねられます。これも良いオプションです。

リダイレクトの構成が完了するとすぐに、SSL証明書を使用する新しいドメインがすぐに機能するはずです。

自動更新の設定とテスト

証明書の暗号化はデフォルトで3か月間有効であり、証明書の有効期間が30日未満の場合、cerbotの自動更新は少なくとも1回は証明書を更新するように構成されています。 SSL証明書が取得され、有効でアクティブになったら、certbotのタイマーサービスがアクティブで実行されている場合は2倍にし、ドライランオプションを使用して更新プロセスをテストします。

sudo systemctl status certbot.timer

sudo certbot renew --dry-run

Nginx構成を確認する

cerbotがssl証明書とHTTPSリダイレクトの構成を正常に書き込んだ場合は、nginx構成を再確認できます。設定が完了すると、Cerbotはnginxを再起動します。ドメイン/ウェブサイトを保護し、アクティブなSSLで実行する必要があります。

概要

要約すると、Debian10マシンとDebian11マシンでもLet’sEncryptSSLを使用してNginxを保護する方法の手順を実行しました。 SSL証明書リクエストにはLet'sEncryptのcertbotツールを使用しました。これは自動更新です。 certbotとそのnginxプラグインのおかげで、プロセスは本当にシンプルで簡単で、すばやく完了できます。これに関する1つの提案は、let’s Encryptフォルダーのバックアップを作成し、頻繁にバックアップすることをお勧めします(certbot自体が提案しているように)。これはもちろんオプションであり、証明書の更新頻度をどのように設定したかによって異なります。

サービスを暗号化しましょう。無料でテクノロジーの世界で非常に人気がありますが、一部の種類のWebサイトを保護するための優れたオプションです。ただし、それらの無料の証明書は、例としてeコマースWebサイトで使用することや、非常に機密性の高いデータ(クレジットカードなど)を渡して保存する必要があるあらゆるタイプのサイトで使用することはお勧めしません。そのため、デフォルトでは、SSL証明書の更新時間を短くすることをお勧めします。その点で、Let'sEncryptは使用できる唯一の無料オプションではありません。 Cloudflareには無料のSSLを提供する同じオプションがあり、NginxWebサイトを保護するためにも使用できます。このオプションに興味がある場合は、このリンクの投稿を確認してください。


Debian
  1. Debian10/11でSSLを暗号化してApache2を保護する

  2. Debian10/11にNginxを使用してWordPressをインストールする

  3. NginxをSSLで保護し、FreeBSDで暗号化する方法

  1. CentOS7でLetsEncryptを使用してNginxを保護する

  2. Debian9でLetsEncryptを使用してNginxを保護する

  3. Debian10LinuxでLetsEncryptを使用してNginxを保護する

  1. Debian10でLetsEncryptを使用してApacheを保護する

  2. Lets Encrypt and Secure Nginx with SSL/TLSをDebian9にインストールする

  3. セットアップ方法CentOS8/RHEL8およびCentOS7/RHEL7でNginxを使用してSSL証明書を暗号化しましょう