Let's Encrypt証明書によるFortiGateの接続エラーについて(2021/10/4)
2021年10月1日のLet's Encryptのルート証明書移行に伴い、FortiGate側でアクセスが遮断される事象が発生しております。
この事象は、Let's Encryptを用いたサイトに接続する際、サーバ証明書の検証を行います。
FortiGate側で証明書の検証を行う際、クロス署名をされた新しいルートを参照よりも
古いルート証明書を参照しようとし、有効期限が切れているために無効な証明書として扱われます。
この、クロス署名の移行方法はLet's Encrypt側の移行方式によるもので、現状ではFortiGate側の設定を行うことで回避できます。
回避策については、以下の2方式を取ることができますが、回避策2はセキュリティリスクを伴うため、回避策1を実行頂くことをお勧めいたします。
回避策1–期限切れのルートCAへのフォールバックを防止します
apps.identrust.comへのアクセスをブロックすることで、期限切れのルートCAへのフォールバックを防ぐことができ正しいルートCAが使用されます。
これは、DNSブラックホールを使用するか、FQDNポリシーを使用してapps.identrust.comへのアクセスをブロックすることで実現できます。
これにより、FortiGateデバイスは証明書チェーンを再構築し、FortiGate上のローカルCA証明書で「ISRG_Root_X1」のCA証明書を利用するように強制されます。
config system dns-database
edit "1"
set domain "identrust.com"
config dns-entry
edit 1
set hostname "apps"
set ip 127.0.0.1
next
end
next
end
回避策2–期限切れの証明書を受け入れる
一時的な回避策として次のCLIを使用して、この証明書の有効期限の検証をオフにすることができます。
この方法は証明書の検査自体を無効にするためセキュリティリスクが存在します。
回避策1の方法で改善しない場合などに利用してください。
config firewall ssl-ssh-profile
edit "certificate-inspection"
config https
set expired-server-cert allow
set untrusted-server-cert allow
end
end
https://www.fortinet.com/blog/psirt-blogs/fortinet-and-expiring-lets-encrypt-certificates