最終更新日:2019年1月21日
”Action required: Let's Encrypt certificate renewals”というメールが来たら対応必須!2019年2月13日以降、Let’s EncryptのSSL/TLS証明書の更新不可に!
先日、Let’s Encrypt より”Action required: Let's Encrypt certificate renewals”というタイトルのメールが届きました。
Hello,
**Action is required to prevent your Let's Encrypt certificate renewals from breaking.**
Your Let’s Encrypt client used ACME TLS-SNI-01 domain validation to issue a certificate in the past 60 days.
TLS-SNI-01 validation is reaching end-of-life and will stop working on **February 13th, 2019.**
You need to update your ACME client to use an alternative validation method (HTTP-01, DNS-01 or TLS-ALPN-01) before this date or your certificate renewals will break and existing certificates will start to expire.
If you need help updating your ACME client, please open a new topic in the Help category of the Let's Encrypt community forum:
https://community.letsencrypt.org/c/help
Please answer all of the questions in the topic template so we can help you.
For more information about the TLS-SNI-01 end-of-life please see our API announcement:
Thank you,
Let's Encrypt Staff
内容を確認してみると、TLS-SNI-01 に脆弱性があるため、TLS-SNI-01 認証による SSL/TLS 証明書の更新が、2019年2月13日で終了するとのことです。
Let’s Encrypt は今ではかなり普及しているので、かなりインパクトのある情報だと思うのですが、騒ぎになっていないのは英語情報しかないからでしょうか。
それで早速自分のサイトで対応をしようと思ったのですが、なかなか手こずったのでその対応方法を載せておきます。対応には、Certbot のバージョンを 0.28.0 以上に更新して HTTP で認証する必要があります。
この記事では、CentOS 7 + Apache の方法をご紹介します。
まずは、Certbot のバージョンを確認します。
# certbot --version certbot 0.29.1
バージョンが 0.28.0 より新しいのでここでは、対応の必要はありませんね。もし、バージョンが古かった場合には、yum update でバージョンアップが必要です。
次は、以下のコマンドで Let's Encrypt の SSL/TLS 証明書を HTTP 認証でテスト更新してみます。
# certbot renew --dry-run --preferred-challenges http
すると、以下のようなエラーが表示されてしまいました。
Attempting to renew cert (www.websec-room.com-0001) from /etc/letsencrypt/renewal/www.websec-room.com-0001.conf produced an unexpected error: Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80.. Skipping.
All renewal attempts failed. The following certs could not be renewed:
/etc/letsencrypt/live/www.websec-room.com-0001/fullchain.pem (failure)
最初、VirtuslHost で80番ポートって何のことかと思いましたが、要は HTTP サイトで VirtualHost のApahce設定がなかっただけでした。なので、/etc/httpd/conf/httpd.conf に以下の内容を追加します。
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin root@websec-room.com DocumentRoot /home/c3008847/public_html/websec-room.com ServerName www.websec-room.com </VirtualHost>
これで Apache を再起動して、下記コマンドを実行したところ問題なく SSL/TLS 証明書のテスト更新が完了しました。
# certbot renew --dry-run --preferred-challenges http
おわりに
Let's Encrypt から意味不明なメールが届いて驚いた方も多いと思いますが、適切な対応ができていれば問題ありません。
場合によっては、以下の記事にあるような作業を行う必要があるかもしれませんが、私の環境ではその必要はありませんでした。
約1ヶ月後と対応までの期間が短いですが、確実に対応しておきたいですね。
スポンサーリンク
カテゴリー:ブログ
コメントを残す