Let's Encrypt証明書によるFortiGateの接続エラーについて(2021/10/4)

FortiGateをご利用のお客様へお知らせがございます。

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