Let's Encryptは、無料でオープンな認証局(CA)です。これは、無料のTLS / SSL証明書を取得、インストール、および更新するための簡単な方法を提供します。
ここLinuxAPTでは、サーバー管理サービスの一環として、お客様が関連するNginxクエリを実行するのを定期的に支援しています。
これに関連して、無料のLet’sEncryptSSL証明書とSecureNginxを取得してUbuntu18.04サーバーにインストールする方法を検討します。
UbuntuにLet'sEncryptをインストールする方法
このインストール手順を実行する前に、次の要件が満たされていることを確認してください。
- sudo権限を持つroot以外のユーザーがいるUbuntuサーバー。
- このガイドに示されているように、Nginxをインストールして構成する必要があります。
- このガイドに示されているように、ドメインにNginxサーバーブロックを用意します。
- ドメイン名はサーバーのIPアドレスを指している必要があります。
次に、Certbotツールを使用して、Ubuntu18.04サーバーでNginxの無料SSL証明書を取得する手順に従います。
1.Certbotクライアントをインストールします
Certbotクライアントパッケージを使用して、Let's Encrypt SSL証明書を簡単に取得、インストール、および更新できます。 SSL証明書を使用するようにWebサーバーを構成すると便利です。 certbotパッケージはデフォルトのUbuntuリポジトリに含まれています。
まず、次のように入力して、パッケージリストのインデックスを更新します。
$ sudo apt update
次に、以下のコマンドを実行してCertbotクライアントをインストールします。
$ sudo apt install python-certbot-nginx
また、次のように入力して、certbotが正常にインストールされているかどうかを確認できます。
$ certbot --version
2.ファイアウォールを構成する
サーバーがUFWファイアウォールで保護されている場合は、HHTPSトラフィックを許可するようにファイアウォールを調整する必要があります。
タイプ別に現在の設定を表示するには:
$ sudo ufw status
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
HTTPSトラフィックを取得するには、Nginxフルプロファイルを許可し、冗長なNginxHTTPプロファイルの許容値を削除する必要があります。
$ sudo ufw allow 'Nginx Full'
$ sudo ufw delete allow 'Nginx HTTP'
これで、ステータスは次のようになります。
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
3.NginxでSSL証明書を暗号化しましょう
SSL証明書は複数の方法で取得できます。
私。ここでは、certbotクライアントを使用してSSL証明書を取得します。
$ sudo certbot --nginx -d example.com -d www.example.com
ここでは、example.comドメインとwww.example.comドメインをリクエストしています。初めてインストールする場合は、メールアドレスを入力して利用規約に同意するよう求められます。入力したメールアドレスは、SSLの更新と有効期限に関連するメールアラートの送信に使用されます。
次に、検証が成功すると、HTTPS設定を構成するように求められます。
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
ii。選択に応じてオプション1または2を選択し、Enterキーを押して続行します。 Nginxサーバーブロックは選択したオプションに基づいて更新され、Nginxをリロードして新しい設定を有効にします。
最後に、ドメインはLet'sEncryptSSL証明書で保護されています。 HTTPSプロトコルを使用してサイトにアクセスすることで確認できます。
Let's Encrypt SSL証明書の自動更新を設定するにはどうすればよいですか?
Let's Encrypt SSL証明書の有効期間は90日なので、有効期限が切れる前に更新する必要があります。
私。次のように入力すると、SSL証明書が期限切れになる前に更新できます。
$ sudo certbot renew
ii。さらに、cronjobを追加することで、Let’sEncryptSSL証明書の自動更新プロセスを設定できます。以下のコマンドを実行してcrontabを開きます:
$ sudo crontab -e
iii。次に、ファイルの最後に以下の行を追加します。コマンドは1日に2回実行され、証明書の有効期限が近づくと更新されます。
0 */12 * * * root test -x /usr/bin/certbot -a ! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew
iv。ファイルを保存して閉じます。
v。次のように入力して、certbotの自動更新プロセスを確認することもできます。
$ sudo certbot renew --dry-run