発端
ある日、WPから外部システムへ連携するプラグインが動いていないことに気が付きました….
正直、そこら辺を変更した記録もないし、タイミングがよくわからず…..
該当のプラグインでAPIの設定をテストできる項目があったので、ありがたくテストしたところ下記メッセージが表示されていました。
「cURL error 60: SSL certificate problem: certificate has expired」
内心「なんでー??この前の2021/10/1で終わりじゃなかったのかよ」と叫びながら調査しました。
いろいろ調べた結果、WordPressには内部に独自のルート証明書を持っているそうです….とんだお節介野郎め….
なので、OSレベルのルート証明書を更新してもWP内のプラグインで利用されるcURLではそちらは利用されません。なので「
/wp-includes/certificates/ca-bundle.crt 」を更新する必要があります。
対処
① 新しい 「ca-bundle.crt」を取得
→ このca-bundle.crt が古いためエラーが出ているので新しくする。
wget https://raw.githubusercontent.com/WordPress/WordPress/master/wp-includes/certificates/ca-bundle.crt
② 「 /wp-includes/certificates/ca-bundle.crt 」を①でダウンロードした「
ca-bundle.crt 」に更新する
→単純にコピーで上書きする
cp -b -i ca-bundle.crt /wp-includes/certificates/ca-bundle.crt
-b:上書きの場合、上書き前のファイルのバックアップを作成
-i:本当に上書きしますか?と注意してくれる(必要性はないが、何となく)
③ 完了!
最後に
WPも奥が深いでござる…