ACMEv1問題とTLS 1.0、1.1問題

久しぶりに IT 関連の話題なのですが、最近は稼働維持だけでほとんどいじっていなかった、Drupal8 勉強用のサーバーで、Let’s Encrypt からメールが届きました。

Hi,
According to our records, the software client you’re using to get Let’s
Encrypt TLS/SSL certificates issued or renewed at least one HTTPS certificate
in the past two weeks using the ACMEv1 protocol. Here are the details of one
recent ACMEv1 request from each of your account(s):
Client IP address: XXX.XXX.XXX.XXX

最初の部分だけの抜粋ですが要約すると、証明書を取得する際に使うプロトコルのバージョンを ACMEv2 に移行するから、6月から ACMEv1 使えなくなるから注意してね、ということみたいでした。AlpineLinux は 3.8系だったので、この際にアップグレードしてしまうかと 3.10系にアプグレード。

証明書取得に使う certbot も 0.35.1 になっているので、ACMv2 にも対応しているはずです。とりあえず PostgreSQL のバックアップ取らずにアップグレードかけて Drupal8 の DB飛ばすという間抜け行為さえなければ完璧でした。settings.php 初期化してやり直しましたが、Drupal8 のバージョンも上がって日本語化もインストールウィザードもだいぶ良くなってますね。

そんなこんなで落ち着いたかなと思った矢先、職場で Firefox でアクセスできないサイトが……なんて相談をされました。調べてみると3月10日リリースの ver.74 でTLS 1.0、1.1をデフォルト無効にしたそうな。

あーそういえば、やるっていってたなぁ、なんてのんきに思い出してましたが、仕事で使ってるサイトらしいので現実はのんきに対応できません。現時点ではユーザーが許可することで、有効に戻せるらしいのですが、今後の利用状況次第で完全に無効化するようです。TLS 1.2、1.3 じゃないと信用しないよと。

ウェブの暗号通信をSSLといったりしますが、厳密にはSSLという旧来のプロトコルはほぼ無効化されていて、TLS 1.3 が最新です。セキュリティーの上では 1.3 だけ使った方がいいのですがクライアントの状況次第で 1.2 まではギリ許せる、というのが多くのオープンソース界隈の見解です。今の世の中、かなりの仕組みがオープンソースに由来する技術に頼っているので、大きな流れに逆らってネットを使うのは難しい。

というわけで、自分が管理しているサーバーの nginx では TLS 1.2 と 1.3 のみ有効にして 1.1 以下を無効化しました。これからドンドンこういうサーバーが増えて、ブラウザで警告表示が出るサイトが増えていくと思います。管理者がいなくなったサーバーは不正の温床にもなるので、こういう機会にあぶり出されるのもいいかもしれないと思いました。