Let's Encrypt certbotを使用して無料のSSL証明書を取得する方法と、それを自動的に更新する方法についてのステップバイステップのチュートリアル。
とりわけ、Let’s Encryptはオープンソースであり、完全に無料です。これにより、誰でも信頼できるSSL証明書を自分のWebサイトにインストールして、暗号化された接続が提供する強化されたセキュリティの恩恵を受けることができます。自己署名SSL証明書とは異なり、Let’s Encrypt証明書は完全に検証済みとして認識され、最新のウェブブラウザのアドレスバーに南京錠のアイコンが表示されます。
証明書を発行する前に、Let’sEncryptはドメインの所有権を検証します。ホストで実行されているLet’s Encryptクライアントは、必要な情報を含む一時ファイル(トークン)を作成します。次に、検証サーバーはHTTPリクエストを作成してファイルを取得し、トークンを検証します。これにより、ドメインのDNSレコードがLet’sEncryptクライアントを実行しているサーバーに解決されることが検証されます。したがって、以下に示すコマンドは、証明書を発行するドメインにサービスを提供するサーバーで実行する必要があります。
1。 certbotのインストール
Let’s Encryptには、certbot
という自動インストーラーがあります 。 Let’s Encryptを使用してSSL証明書を取得するための最初のステップは、サーバーにインストールすることです。
Ubuntu:
sudo apt install certbot python3-certbot-nginx
Debian:
sudo apt install certbot
CentOS:
sudo yum install epel-release
sudo yum install certbot-nginx
2。 Let'sEncrypt証明書の取得
重要! Let's Encryptの無料SSL証明書を発行する前に、ウェブサーバーサービスを停止する必要があります。そうしないと、次のエラーが発生します:
Problem binding to port 80: Could not bind to IPv4 or IPv6
Nginxを使用する場合は、次を実行します:
sudo systemctl stop nginx
これで、Let’sEncryptの無料SSL証明書の生成に進むことができます。
sudo certbot certonly --standalone --preferred-challenges http -d my-domain.com
-dオプションはドメイン名を取ります。複数の-d
を使用できます 単一のコマンドのオプション。例:
sudo certbot certonly --standalone --preferred-challenges http -d my-domain.com -d www.my-domain.com
certbot
を初めて実行する場合 、メールアドレスを入力して利用規約に同意するよう求められます。その後、certbot
Let’s Encryptサーバーと通信し、チャレンジを実行して、証明書を要求しているドメインを制御していることを確認します。
それが成功した場合は、certbot
プロセスが成功し、証明書が保存されている場所を通知するメッセージで締めくくられます。
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/my-domain.com/fullchain.pem. Your cert will
expire on 2022-08-08. To obtain a new or tweaked version of this
certificate in the future, simply run certbot again with the
"certonly" option. To non-interactively renew all of your
certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
3。証明書を確認する
/etc/letsencrypt/live/my-domain.com
ディレクトリ。
ls -l /etc/letsencrypt/live/my-domain.com/
total 4
-rw-r--r-- 1 root root 692 Mar 10 08:24 README
lrwxrwxrwx 1 root root 37 Mar 10 08:24 cert.pem -> ../../archive/my-domain.com/cert1.pem
lrwxrwxrwx 1 root root 38 Mar 10 08:24 chain.pem -> ../../archive/my-domain.com/chain1.pem
lrwxrwxrwx 1 root root 42 Mar 10 08:24 fullchain.pem -> ../../archive/my-domain.com/fullchain1.pem
lrwxrwxrwx 1 root root 40 Mar 10 08:24 privkey.pem -> ../../archive/my-domain.com/privkey1.pem
4。 Webサーバー構成を変更する
WebサーバーでLet’s Encryptの無料SSL証明書を使用するには、構成でそれらを指定する必要があります。たとえば、Nginxを使用する場合は、ドメイン構成ファイル/etc/nginx/sites-enabled/my-domain.conf
に次のブロックを追加する必要があります。
server {
listen 443;
server_name my-domain.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/my-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/my-domain.com/privkey.pem;
}
それでおしまい。すべてが設定され、実行されます。これで、Webサーバーを起動するだけで済みます:
sudo systemctl start nginx
最後に、WebサイトがSSLで保護されていることを確認できます。ブラウザでWebサイトを開き、南京錠のアイコンが使用可能かどうかを確認するだけです。
5。 Let'sEncrypt証明書を自動的に更新する
証明書は90日間有効です。有効期限が切れる30日前に更新できます。ここでは、自動的に更新されるcronジョブを追加します。
したがって、最初にcrontabファイルを開きます:
sudo crontab -e
その後、certbot
を追加します 毎週実行するコマンド:
@weekly certbot renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx" --renew-hook "systemctl reload nginx" --quiet
このチュートリアルでは、Webサイトを保護するために、Let’sEncryptから無料のSSL証明書をインストールする方法を説明しました。さらに、Let’sEncryptの公式ウェブサイトで詳細と詳細を確認できます。