WordPressバージョンアップでエラーが出た時の対処法「cURL error 60」

※この記事は、同様のエラーに直面している方々に向けた記事や備忘録として公開しています。
管理画面から更新しようとしたら突然エラーが出た、という方向けに原因と解決手順をまとめました。エンジニアでなくても試せます。
どんなエラーが出たか
管理画面の「更新」ボタンを押すと、こんなメッセージが出て止まります。
ダウンロードに失敗しました。: cURL error 60: SSL certificate problem: unable to get local issuer certificate
Installation Failed一見むずかしそうですが、原因はシンプルです。
なぜ起きるのか(3行で)
WordPressが更新ファイルをダウンロードするとき、「相手サーバーが信頼できるか」を証明書で確認します。その確認に使うファイル(CA証明書バンドル)が古くなっていると、確認に失敗してエラーになります。
ポイント:php.ini や cacert.pem の設定が正しくても、このエラーは起きることがあります。WordPressが内部で別のファイルを使っているためです。
対処法:CA証明書バンドルを差し替える
対象ファイル
wp-includes/certificates/ca-bundle.crtこのファイルを最新版に差し替えるだけで解決します。
① 既存ファイルをバックアップする
FTPソフトやサーバーのファイルマネージャーで、以下のファイルを別名で保存しておきます。
wp-includes/certificates/ca-bundle.crt
↓
wp-includes/certificates/ca-bundle.crt.bak(などにリネーム)② 新しいファイルを入手する
WordPressの公式GitHubリポジトリから最新の ca-bundle.crt をダウンロードします。
- WordPress公式GitHub(wp-includes/certificates/)
- ページを開いて「Download raw file」ボタンからダウンロード
③ サーバーにアップロードする
ダウンロードしたファイルを wp-includes/certificates/ca-bundle.crt に上書きアップロードします。
注意:ファイルのパーミッション(権限)は元のファイルと同じ設定にしてください。
④ 管理画面から更新を再実行する
WordPressの管理画面に戻り、もう一度「更新」を実行します。正常に完了すれば成功です。
よくある誤解
| やりがちな対処 | 効果 |
|---|---|
php.ini の curl.cainfo を修正する | △ これだけでは直らないことが多い |
cacert.pem をアップロードし直す | △ 同上 |
ca-bundle.crt を差し替える | ✅ これが根本的な解決策 |
php.ini や cacert.pem を変更していた場合は、元に戻してOKです。
ローカル環境でも同じエラーが出る場合
本番サーバーの php.ini には、サーバー固有のパスが書かれています。
curl.cainfo = "/home/ユーザー名/html/cacert.pem"このパスはサーバー上にしか存在しないため、手元のMac・Windowsにファイルをコピーして動かすと、同じエラーが出ることがあります。原因が別なので、混同しないようにご注意ください。
作業後のセキュリティチェック
- 動作確認のためにサーバーに置いた
test-php.php(phpinfo表示用など)は必ず削除する wp-config.php(データベースのパスワードが入っている)はGitHubや共有ドライブに上げない
まとめ:エラーが出たときのチェックリスト
- まず試す:
wp-includes/certificates/ca-bundle.crtを最新版に差し替える - php.ini・cacert.pem は:変更していた場合は元に戻してOK
- ローカルでも出る場合:原因が別なので切り分けて対処する
- 作業後は:テスト用ファイルの削除を忘れずに
多くの場合、ca-bundle.crt の差し替えだけで解決します。php.ini より先に試す価値があります。
動作確認環境:CPIサーバー/ PHP 7.4