外部通信のTLS証明書検証


Webhookの送信、外部サービス連携など、a-blog cms がサーバー側で外部にHTTP(S)通信を行う機能では、Ver. 3.2.29(および 3.1.75 / 3.0.61 )以降、TLS証明書の検証がデフォルトで有効になっています。

影響

送信先・連携先のサーバーが自己署名証明書や期限切れ証明書を使用している場合、通信が失敗するようになります。該当する送信先がある場合は、通信先サーバーの証明書を正しいものに切り替えることを検討してください。

証明書の検証には、システムのCA証明書ストア(見つからない場合は同梱のCA bundle)を使用します。正しい証明書を使っているにもかかわらず通信が失敗する場合は、サーバー側のCA証明書ストアの状態も確認してください。

検証を無効化する設定

a-blog cms 設置ディレクトリ直下の環境設定ファイル(.env)に HTTP_SSL_VERIFY=false を設定することで、TLS証明書の検証を無効化できます。

HTTP_SSL_VERIFY=false

デフォルト値は true(検証有効)です。この設定は本番・開発環境を区別せず、値のみで判定されます。つまり HTTP_SSL_VERIFY=false は本番環境でも検証を無効化します。一時的な確認用途を想定した設定なので、本番環境で恒久的に無効化したままにすることは避け、通信先サーバーの証明書を正しいものに修正することをおすすめします。

対象外の機能

JSON2TPLモジュール(外部JSONの取得)は、この設定を共有していません。取得先URLへの通信では常にTLS証明書が検証され、HTTP_SSL_VERIFY=false を設定しても無効化できません。

JSON2TPLモジュールの取得先URLに関する制限については、Json_2Tpl モジュールを使って専用モジュールを作ってみようをあわせて参照してください。