UbuntuとApache2で構築したwebサーバーにSSLを導入する

ドメインは取得して設定済み。
※さくらのネームサーバー利用については公式ドキュメントを参照

SSL/TLS証明書を取得する

Let’s Encryptの無料SSL/TLSサーバ証明書を利用。

証明書取得に必要なツールをインストール

Terminal window
sudo apt install certbot

web公開領域以下に設置されているドメインでSSL証明書を取得する

Terminal window
## rootディレクトリは設定により異なる
## [domain name]はサブドメインの場合はサブドメインを指定
sudo certbot certonly --webroot -w /home/[username]/public_html -d [(sub)domain name]
##複数ドメインがある場合下記のように繋げることが可能
sudo certbot certonly --webroot -w /home/[username]/public_html -d [(sub)domain name] -d [(sub)domain name] -d [(sub)domain name] ...

以下のように質問が返されるので、入力してEnterを押下

Terminal window
## メールアドレスを入力
Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel):
## Aを入力
Please read the Terms of Service at ~
(A)gree/(C)ancel:
## Yを入力
Would you be willing to share your email address~
(Y)es/(N)o:

下記表示が出れば取得完了
/etc/letsencrypt/live/[(sub)domain name]/以下に証明書が作成される

Terminal window
IMPORTANT NOTES:
(中略)
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

SSL/TLS証明書を有効化する

SSLに関するモジュールの有効化

Terminal window
sudo a2enmod ssl

設定ファイルを編集・保存

Terminal window
## vi /etc/apache2/sites-available/default-ssl.conf
ServerAdmin = webmaster@example.com ←上記で設定したメールアドレスに修正
DocumentRoot = /var/www/html ←rootディレクトリパウに修正
## 先ほど取得した証明書のパスに変更
## SSLCertificateChainFileはコメントアウトを外す
SSLCertificateFile /etc/letsencrypt/live/[(sub)domain name]/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/[(sub)domain name]/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/[(sub)domain name]/chain.pem

設定の有効化

Terminal window
sudo a2ensite default-ssl

Apacheの再起動

Terminal window
sudo systemctl restart apache2

httpsで接続ができていればOK

SSL/TLS証明書の更新について

Let’s Encryptの無料SSL/TLSサーバ証明書の有効期限は90日で、期限が近づくとメールで知らせてくれる。

更新の際は下記コマンドを入力

Terminal window
sudo certbot renew