”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”というタイトルのメールが届きました。


**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:


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:

March 13, 2019: End-of-Life for All TLS-SNI-01 Validation Support
Let’s Encrypt allows subscribers to validate domain control using any one of a few different validation methods. For much of the time Let’s Encrypt has been ope...

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

これで Apache を再起動して、下記コマンドを実行したところ問題なく SSL/TLS 証明書のテスト更新が完了しました。

# certbot renew --dry-run --preferred-challenges http


Let’s Encrypt から意味不明なメールが届いて驚いた方も多いと思いますが、適切な対応ができていれば問題ありません。