はじめに
訪問者を引き付けることを目指すWebサイトには、そのドメインにSSL/TLS暗号化を含める必要があります。 SSL / TLS証明書は、Webサーバーとブラウザ間の安全な接続を保証します。
Let’s Encryptは、このような保護を設定できる無料の認証局です。これは、Nginxサーバーを保護するための最も簡単な方法です。
この記事では、Certbotソフトウェアを使用してLet’s Encrypt証明書を取得することにより、Nginxサーバーを保護する最も簡単な方法を紹介します。
前提条件
- Ubuntu 20.04(またはUbuntu 18.04)を実行しているシステム
- ターミナルウィンドウ/コマンドラインへのアクセス
- 須藤 またはルート ローカル/リモートマシンの特権
- Nginxのインストールとセットアップ
- 登録済みドメイン名
- そのドメイン名用に構成されたサーバーブロック
Ubuntu20.04でLet'sEncryptを使用してNginxを保護する方法
ステップ1:Certbotをインストールする
Certbotは、Let’sEncrypt証明書を使用してHTTPSを自動的に有効にするためのオープンソースソフトウェアツールです。
Let’s EncryptでNginxを保護するための最初のステップは、Certbotをインストールすることです。これを行うには、まずターミナルウィンドウを開き、ローカルリポジトリを更新します。
sudo apt update
次に、次のコマンドを実行して、CertbotとそのNginxプラグインをダウンロードしてインストールします。
sudo apt install certbot python3-certbot-nginx
y
と入力します インストールを確認してEnterキーを押します。
ステップ2:Nginx構成を確認する
前提条件に記載されているように、登録済みドメインとそのドメインのNginxサーバーブロックがすでに存在している必要があります。例として、この記事ではドメイン example.comを使用しています 。
正しく設定されているかどうかを確認するには、Nginx構成ファイルを開きます。
sudo nano /etc/nginx/sites-available/example.com
次に、 server_name
を見つけます ディレクティブを作成し、ドメイン名に設定されていることを確認してください。 www。の有無にかかわらずドメイン名を含めたい場合 プレフィックスを付けると、行は次のようになります。
server_name example.com www.example.com;
ステップ3:HTTPSトラフィックを許可するようにファイアウォールを調整する
次のステップは、HTTPSトラフィックを許可するようにファイアウォールを調整することです。
Nginxインストールガイドに従っている場合は、ファイアウォールを有効にしてNginxHTTPを許可しています。 Let’s Encrypt証明書を追加するときは、暗号化されたトラフィック用にファイアウォールを構成する必要があります。
1.ファイアウォールがアクティブでHTTPSトラフィックを許可していることを確認するには、次のコマンドを実行します。
sudo ufw status
出力には、UFWがアクティブであることが示され、設定されたルールのリストが表示されます。次の例では、ファイアウォールがNginx HTTPトラフィックを許可しているが、HTTPSは許可していないことを示しています。
Nginxには、ルールとして追加できる3つのプロファイルがあります。
- Nginx HTTP (ポート80を開きます)
- Nginx HTTPS (ポート443を開く–暗号化されたトラフィック)
- Nginx Full (ポート80と443を開きます)
2.暗号化されたトラフィックを許可するには、 Nginx HTTPSを追加します。 プロファイルを作成するか、 Nginx Fullを使用します 既存のNginxHTTPルールを削除します:
a)次のコマンドを実行してNginxHTTPSトラフィックを許可します:
sudo ufw allow 'Nginx HTTPS'
b)Nginx HTTPを削除し、代わりにNginxFullを使用します。
sudo ufw deny 'Nginx HTTP'
sudo ufw allow 'Nginx Full'
3. ufw status
を使用して、HTTPSトラフィックを許可するルールを追加したことを確認します コマンド。
ステップ4:SSL/TLS証明書を取得する
Certbot用のNginxのプラグインは、Nginxを再構成し、必要に応じてその構成を再読み込みします。したがって、実行する必要があるのは、NGINXプラグインを使用して証明書を生成することだけです。
1.これを行うには、次のコマンドを実行します:
sudo certbot --nginx -d example.com -d www.example.com
2.出力では、HTTPS設定を構成するように求められます。メールアドレスを入力し、利用規約に同意して続行してください。
3. HTTPSを構成すると、Certbotは証明書の生成を完了し、新しい設定でNginxをリロードします。
4.最後に、出力に証明書が正常に生成されたことが表示され、サーバー上の証明書の場所が指定されます。
ステップ5:証明書の自動更新を有効にする
Let’s Encryptの証明書は90日ごとに期限切れになるため、Nginxではcronジョブの設定と自動更新をお勧めします。
1.まず、現在のユーザーのcrontab構成ファイルを開きます。
crontab -e
2. certbot
を実行するcronジョブを追加します コマンド。証明書が30日以内に期限切れになることを検出すると、証明書を更新します。毎日指定された時間に実行するようにスケジュールします(この例では、午前5時に実行します):
0 5 * * * /usr/bin/certbot renew --quiet
cronジョブには、 --quiet
も含める必要があります 上記のコマンドのように、属性。これは、タスクの実行後に出力を含めないようにcertbotに指示します。
3. cronジョブを追加したら、変更を保存してファイルを終了します。