letsencrypt renew での TLS-SNI-01 is deprecated, and will stop working soon. の対処


letsencrypt renew`` でのTLS-SNI-01 is deprecated, and will stop working soon.``` の対処について.

http-01 challenge

dns challenge または http-01 challenge (default) のみしか、実質letencrypt-autoでの更新ができなくなりました (SSL (Port 443)でのchallengeができなくなった)

(大昔にletsencryptの設定をしたきりだったので)非常にやっかいだったので、ここに示します。

  1. letsencrypt-auto --standalone では、 lentsencrypt内蔵のサーバーが、challengeを請け負います。
    • これは特に不変ですが重要なことです。
    • apache2を止めていない人は止めることが必要 service apache2 stop
  2. http-01とは、素のhttp (Port:80)が、challengeのresponseをします。
    • ルーターの設定で、port:80をこれまで閉じていた人は開ける必要がある.
    • また、apache2を止めておくこと
    • そして、ルーターだけでなく、自分の環境(Ubuntu)のfirewallもPort:80を開ける必要があります!!! # ufw allow 80

僕が間違えていたことは、

  • 下で書いたobsoleteなやり方で対応ができていたはずと思っていたので、Port:443でchallengeが受けられると勘違いしたこと。
  • challengeに、 tls-sni-01 がなくなったこと. 代替手段はdns or http-01 (Port:80)です。実質、http (Port:80)が万人が移行可能なプランです。
  • ルーターのポートフォワーディングで、別PortをPort:80に割り当てることで、http://でアクセスできていたので、なぜ、letsencrypt-autoのchallengeが通らなくなっていたのか不明であったこと。(ufw allow 別のPort になっており、 ufw deny 80していたのでした。なので、ufw allow 80がキーでした。---standaloneの場合)

以前の対処 (4/E/2019までで使えなくなりました)

Warning: apache2.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Cert is due for renewal, auto-renewing...
Renewing an existing certificate
Performing the following challenges:
tls-sni-01 challenge for xxx.xxx.xxx.jp
TLS-SNI-01 is deprecated, and will stop working soon.
Waiting for verification...
Cleaning up challenges

のように、TLS-SNI-01使えなくなるよのメッセージが出るときには、
以下のように、apache2のssl.confを修正して、TLSを無効化しましょう。

# vi /etc/apache2/mods-available/ssl.conf
/etc/apache2/mods-available/ssl.conf
..snip..
    #   The protocols to enable.
    #   Available values: all, SSLv3, TLSv1, TLSv1.1, TLSv1.2
    #   SSL v2  is no longer supported
-   SSLProtocol all -SSLv3
+   SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
..snip