#背景
2020年5月末までにLet's EncryptでACME v2に更新しなさいというメールが来たので、ACME v2 に更新しました。
Beginning June 1, 2020, we will stop allowing new domains to validate using
the ACMEv1 protocol. You should upgrade to an ACMEv2 compatible client before
then, or certificate issuance will fail. For most people, simply upgrading to
the latest version of your existing client will suffice. You can view the
client list at: https://letsencrypt.org/docs/client-options/
#動作環境
ホスティングサービス ConoHa
CentOS Linux release 7.4.1708 (Core)
Apache/2.4.6
#更新手順
まず、certbotを最新にします。
# yum install git
# git clone https://github.com/certbot/certbot.git
# cd certbot/
#./certbot-auto --version を実行したら、複数のモジュールが勝手に更新されていきました。
certbot 1.3.0
以下のようにcertbot-autoを実行します。example.comとメールアドレスは、自分のものに置き換えてください。
#./certbot-auto certonly --manual -d example.com -m <メールアドレス> --agree-tos --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
What would you like to do?
1: Keep the existing certificate for now
2: Renew & replace the cert (limit ~5 per 7 days)
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2 <--2を選択
Renewing an existing certificate
Performing the following challenges:
dns-01 challenge for example.com
Please deploy a DNS TXT record under the name
_acme-challenge.example.com with the following value:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXQZk <--ここにTXTレコードの文字列が表示されます
Before continuing, verify the record is deployed.
DNSでTXTレコードを設定して、ちゃんと認識できたら、Enterで続行します。
私は、ConoHaを使っているので、以下のように設定して40分くらい待ちました。
タイプ 名称 TTL 値
TXT _acme-challenge 3600 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXQZk
#dig _acme-challenge.example.com txt +short を実行してTXTレコードが正しく設定されることを確認します。
Press Enter to Continu <----Enterを押します。
Waiting for verification...
Cleaning up challenges
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on 2020-07-22. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again. To non-interactively renew *all* of your certificates, run
"certbot-auto renew"
- 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
/etc/letsencrypt/live/example.com/には、以下のファイルができています。
cert.pem サーバ証明書ファイル
chain.pem 中間証明書ファイル
fullchain.pem サーバ証明書と中間証明書が一つになったファイル
privkey.pem 秘密鍵ファイル
#vi /etc/httpd/conf.d/ssl.conf
以下の行を差し替えます。
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
/etc/httpd/conf/httpd.confの最後に以下の行を追加
NameVirtualHost *:443 <-- SSL
\<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
ServerAdmin <メールアドレス>
DocumentRoot /var/www/html
ServerName example.com
\</VirtualHost>
httpdを再起動
#systemctl restart httpd.service
https://example.com/ でアクセスできることを確認します。
#参考
以下のサイトを参考にさせて頂きました。深く感謝します。
Let's Encrypt (certbot) でワイルドカード証明書できた!
kusanagi ConoHa環境でサブドメインを含むワイルドカードSSL証明書を取得・自動更新する方法
自動更新に関しては、以下の記事を参考にしました。
無償SSL/TLS証明書の Let's Encrypt の設定が劇的に簡単になっていた