古いwordpressサイト(5.1とか5.2)を移転したときにプラグインを追加しようと思ったら以下のメッセージが出てインストールできませんでした。
cURL error 60: SSL certificate problem: unable to get local issuer certificate
この原因はwordpressコアが持っている証明書の期限切れによるものというのが一般的な原因です。
解消するには、以下のファイル(2030年まで有効)をダウンロードして
https://raw.githubusercontent.com/WordPress/WordPress/master/wp-includes/certificates/ca-bundle.crt
以下のコアのファイルを置き換えればよいというものです。
wp-includes/certificates/ca-bundle.crt
今回も最終的には上記の方法で解決できましたが、最初はなぜかうまくいかず小一時間悩みました。
原因:ca-bundle.crtの場所が間違っていた
ca-bundle.crtをダウンロードして置き換えたつもりが、場所が間違っていました。
本来以下のパスが正しいのですが、
wp-includes/certificates/ca-bundle.crt
適当にコピーしたので、
wp-includes/ca-bundle.crt
という間違いを犯していました。
これだと当然元のファイルが生きているのでうまくいきません。
別の方法:SSLの認証をチェックをなくす方法
ファイルの置き場所を間違えていたので、最初はエラーが消えなかったので別の方法で回避しました。
add_filter('https_ssl_verify', '__return_false');
これを追加することで、SSL証明書のチェックがされなくなるので、ひとまずエラーを回避できます。
これは一時的な回避策なので、どうしても解消しない場合の手段として覚えておきましょう。
まとめ
古いWordpressを別のサーバーに移転する際、同じバージョンのWordpressを新規でインストールしたにもかかわらず、今回のようなWordpressコアのSSL証明書の問題が起きました。
マイナーバージョンアップは繰り返されているはずなのですが、ca-bundle.crtは更新されていないのでしょうか?
wp-includes/certificates/ca-bundle.crt