Let’s Encrypt certificate renewalsのメールが来た件 | そう備忘録

Let’s Encrypt certificate renewalsのメールが来た件

Let’s EncryptよりTLS-SNI-01が廃止されるとのメールが来て対応した時の備忘録。

メールの内容

Let’s Encryptより「Action required: Let’s Encrypt certificate renewals」の題名の以下のメールが来た。

Let's Encryptからのメール

要約すると、
  • 過去60日間にTLS-SNI-01認証を使用して証明書が発行された
  • TLS-SNI-01認証は廃止予定
  • HTTP-01、DNS-01、TLS-ALPN-01認証に変更する必要がある
  • 2019年2月13日に動作しなくなる
  • それ以前に発行された証明書は90日間有効
  • certbotユーザなら、ここでより多くの情報を見つけることができる(https://community.letsencrypt.org/t/how-to-stop-using-tls-sni-01-with-certbot/83210

との事だった。

ちなみに当ブログではcertbotを使っている

認証の種類など

TLS-SNI-01とかHTTP-01、DNS-01、TLS-ALPN-01認証などイマイチ意味が分からなかったので調べてみた。

まずは認証はドメインの所有者が正しいかどうか(偽装していないかどうか)を検証する事。

その検証方法がTLS-SNI-01、HTTP-01等、複数あり、以前のcertbotのバージョンはデフォルトでTLS-SNI-01を使用していたのだけれども2018年の1月に脆弱性が見つかったので他の認証方法への切り替えを推奨しつつTLS-SNI-01を廃止するという事になった模様。

脆弱性の詳細についてはこちらの記事を参照。

同一IPアドレス上で複数のドメインを取得できるホスティングサービスの場合、ドメイン名の証明書を他人がTLS-SNIを利用して取得することが出来てしまう脆弱性があるとの事だった。

 TLS-SNI-01Let’s Encrypt認証局が発行したランダムトークンをWEBサーバー内に設置する

認証局はポート443を使って確認して認証する方式

DNS-01Let’s Encrypt認証局が発行したランダムトークンをDNSのレコードに登録する

認証局はDNSレコードの確認により認証する方式

HTTP-01Let’s Encrypt認証局が発行したランダムトークンをWEBサーバー内に設置する

認証局はポート80を使って確認して認証する方式

調べてみる

認証方式を明示的に指定するには –preferred-challenges オプションを指定するのだが、先程のリンクをクリックしたりLet’s Encryptのコミュニティを検索してみて調べて所、どうやらcertbotのバージョンを0.28以上にバージョンアップすれば良い事が判明した。

とりあえず現在のcertbotのバージョンを調べてみる

certbot --version

すると0.22.2である事が判明

バージョンアップ

当方の環境はUbuntu Server 16.04 LTS(HVM)64Bit、apacheなので以下のコマンドでバージョンアップした(というよりも上書きインストール)

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python-certbot-apache

実行後にバージョンを確認した所、0.28になっていた。

また念の為、apacheを再起動しておいた

sudo service apache2 restart

テスト実行

以下のコマンドでテスト実行してみる(証明書は更新されない)

sudo certbot renew --dry-run
HTTP-01で認証にいっている事を確認した。

dry runの実行結果

とりあえずこれでOKのはず。

証明書の有効期限が切れる時にまた確認してみるつもり。

2019年3月27日 追記

3月24日頃に証明書が更新されているはずなので確認をしてみた。

https://www.souichi.club/をChromeで表示して鍵マークをクリックする。

証明書の状態を確認

証明書が有効になっているので大丈夫そうだが念の為、”証明書”をクリックする。

証明書をクリック

3月24に証明書が自動更新されていた事が確認できた。

証明書が更新されていた

souichirou

やった事を忘れない為の備忘録 同じような事をやりたい人の参考になればと思ってブログにしてます。 主にレゴ、AWS(Amazon Web Services)、WordPress、Deep Learning、RaspberryPiに関するブログを書いています。 仕事では工場に協働ロボットの導入や中小企業へのAI/IoT導入のアドバイザーをやっています。 2019年7月にJDLA(一般社団法人 日本デイープラーニング協会)Deep Learning for GENERALに合格しました。 質問は記事一番下にあるコメントかメニュー上部の問い合わせからお願いします。

おすすめ

質問やコメントや励ましの言葉などを残す

名前、メール、サイト欄は任意です。
またメールアドレスは公開されません。