表題の通り、Let's Encryptでwwwのありなしに対応してみたので、その時の作業をメモとして残す。

Let’s Encrypt SSL証明書で、wwwあり、なしに対応 - dbit.に記載されている内容を参考にした。

Let's Encrypt - Free SSL/TLS Certificates


先に環境を記載しておく

OS:Ubuntu 18.04 ※20.04でも同じになるはず

サーバ:Apache/2.4.46

※ドキュメントルートは標準設定の/var/www/htmlとする


今回設定したいドメインをexample.comとして話を進める。

最初にCertbotのページを参考にして、https://example.comにアクセス出来るようにする。

#snapのインストール
$ sudo apt update
$ sudo apt install snapd
$ sudo snap install core; sudo snap refresh core

#Certbotのインストール
$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

#Let's Encryptの設定
$ sudo certbot --apache

#あとは画面の指示に従い、メールアドレスとドメインの登録を行う
#入力するドメインはexample.comにする

#設定が終了したら、Apache2の再起動
$ sudo /etc/init.d/apache2 restart

Apache2の再起動後にブラウザのアドレスバーにhttps://example.comを打ち込んでアクセス出来るか?を確認する。




続いて、https://www.example.comの方の手続きを行う。

$ sudo certbot certonly --agree-tos --email [email protected] --webroot --webroot-path /var/www/html -d example.com -d www.example.com

処理がエラーなく終了したら、confファイルを編集する。

$ sudo nano /etc/apache2/sites-available/000-default-le-ssl.conf 

</IfModule>の上の行に下記の記述を追加する。

<VirtualHost *:443>
ServerName www.example.com
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Redirect permanent / https://example.com/
</VirtualHost>

confファイルを保存した後、

$ sudo /etc/init.d/apache2 restart

でApache2の再起動を行い、ブラウザでhttps://www.example.comが表示されることを確認する。