リバースプロキシ環境下の WordPress で自己署名証明書を回避してアップデートする
とある案件での特殊環境で苦労したのでメモしておきます。
その環境はリバースプロキシ環境下にあり、プロキシサーバーでいったん https 通信の暗号が復号され検査された上で、再度 SSL/TLS 暗号化されるようになっています。
再度暗号化されるときに、プロキシサーバーが自己署名証明書(オレオレ証明書)で暗号化してくるので、サーバー側のプログラムでは、では不正な SSL 通信と判断されてしまいます。
WordPress の管理画面からアップデートやプラグインのインストールを試みると以下のエラーが出てしまいます。
1 |
cURL error 60: SSL certificate problem: unable to get local issuer certificate |
本来は独自証明書を発行した認証局の証明書情報をサーバーにインポートすべきなのですが、それができないという状況でした。
ここは仕方なく SSL 証明書を検証しないことにします。 cURL の SSL 証明書検出エラーを無効化する必要があります。
コマンドラインで使う時は /etc/.curlrc に insecure と書けば良いのですが WordPress の管理画面のエラーはこれでは回避できません。よい方法ではありませんが、 wp-includes/class-http.php を直接書き換えます。
1 2 3 4 |
//'sslverify' => true, 'sslverify' => false, |
これは WordPress 本体のアップデートの度に書き換えの必要が生じる暫定措置ですが、本稿執筆時点ではこれ以外の対処方法はなさそうです。もしよい方法がありましたら教えてください。
ITエンジニア募集中!
キュアコード株式会社はITエンジニアを募集しております。少人数の職場なので、上流・下流やサーバー・クライアント対応の垣根なく、あなたの強みを活かしながら いろいろなことにチャレンジ可能です。エンジニアとしての未経験の方、経験が少ない方も歓迎しています。
下記よりITエンジニア募集の採用情報をご覧いただけます。