
最近、多くのWordPressサイトで「cURL error 60: SSL certificate problem: certificate has expired」エラーが発生し、SSL証明書のインストールや一部のプラグインのインストールが失敗しています。本記事ではその解決方法を共有します。
![]()
この原因は、Let's Encrypt 証明書がHTTP APIのリクエストサポートを停止したため、Let's Encrypt 証明書を使用しているサイトで証明書を更新できず、証明書の有効期限切れの警告が表示されるようになったからです。そのため、手動で証明書を更新するだけで問題は解決します。
解決方法1:手動で証明書を置き換える:
1、https:\/\/curl.se\/ca\/cacert.pemこのファイル;
2、cacert.pem の内容を /wp-includes/certificates/ca-bundle.crt ファイルに置き換えます。
そうすれば、証明書の有効期限切れの警告は表示されなくなります。
解決方法2:コードで証明書を置き換える:
手動での置き換えが面倒な場合は、以下のコードを使用して置き換えることもできます。
まず、以下のコードをコピーして、テーマの関数ファイルに貼り付け、保存します。
/**
* 保存代码后访问 http://你网址/?update-wp-ca-bundle
*/
if( isset( $_GET['update-wp-ca-bundle'] ) ){
$crt_file = ABSPATH . WPINC . '/certificates/ca-bundle.crt';
$new_crt_url = 'http://curl.haxx.se/ca/cacert.pem';
if( is_writable( $crt_file ) ){
$new_str = file_get_contents( $new_crt_url );
if( $new_str && strpos( $new_str, 'Bundle of CA Root Certificates' ) ){
$up = file_put_contents( $crt_file, $new_str );
echo $up ? 'OK: ca-bundle.crt updated' : 'ERROR: can`t put data to ca-bundle.crt';
}
else {
echo 'ERROR: can\'t download curl.haxx.se/ca/cacert.pem';
}
}
else {
echo 'ERROR: ca-bundle.crt not writable';
}
exit;
}
次に、http://あなたのURL/?update-wp-ca-bundle にアクセスし、「更新成功」と表示されれば完了です。
解決方法3:プラグインで証明書を置き換える:
上記2つの解決方法が面倒な場合は、WP管理画面で「SSL Certificate Manager」プラグインを直接インストールして解決できます。