Let's EncryptでSSL証明書を取得する - Ubuntu 20.04
はじめに
Ubuntu 20.04
+ Let's Encrypt
で、SSL証明書を取得するためのメモ。
環境
$ hostnamectl status
Static hostname: ---
Icon name: computer-vm
Chassis: vm
Machine ID: ---
Boot ID: ---
Virtualization: kvm
Operating System: Ubuntu 20.04.2 LTS
Kernel: Linux 5.4.0-72-generic
Architecture: x86-64
インストール
1. certbot をインストール
$ sudo apt install certbot
2. SSL証明書の発行リクエスト
-d
オプションの引数にSSL証明書を取得したいドメイン名を指定。-w
オプションの引数にドキュメントルートを指定。
$ sudo certbot certonly --webroot -w /usr/share/nginx/html -d blog.long-in.net
※上記は、ファイル認証の場合です。
3. Webサーバに設定
Webサーバの種類によって読み込むファイルが異なります。
ApacheとNginxの2つの場合は、以下のようになります。
Apache
SSLCertificateFile /etc/letsencrypt/live/blog.long-in.net/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/blog.long-in.net/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/blog.long-in.net/chain.pem
Nginx
ssl_certificate /etc/letsencrypt/live/blog.long-in.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/blog.long-in.net/privkey.pem;
4. ssl_dhparam を設定
ssl_dhparam を設定することでより通信をセキュアにできます。下記コマンドでファイルを生成します。
$ sudo openssl dhparam -out dhparam.pem 4096
Nginx に設定する場合、下記設定を追記します。
ssl_dhparam "/etc/nginx/dhparam.pem";
5. SSL証明書の更新リクエスト
手動の場合は、下記を実行。
$ sudo certbot renew
CRON + Nginx の場合は、下記設定を /etc/crontab
に追記。
0 22 1 * * root /usr/bin/certbot renew && nginx -t && nginx -s reload
以上、終わり。
About
関西在住のエンジニア
言語: Ruby・Go・PHP
フレームワーク: RoR・Gin
趣味: 自作PC