最近不少WordPress网站都出现了cURL error 60: SSL certificate problem: certificate has expired错误,导致安装SSL证书或者一些插件失败,本文分享一下解决办法。
![]()
出现这个原因是因为Let’s Encrypt 证书停止了HTTP API的请求支持,导致我们使用Let’s Encrypt 证书的网站没办法更新证书,就出现了证书过期的提醒,所以我们只需要手动更新下证书就行了。
解决方法一,手动替换证书:
1、下载https://curl.se/ca/cacert.pem 这个文件;
2、将cacert.pem里面的内容替换到/wp-includes/certificates/ca-bundle.crt 这个文件里面。
然后就不会出现证书过期的提醒了。
解决方法二,代码替换证书:
如果手动替换你觉得麻烦,也可以使用下面的代码进行替换。
首先,把下面的代码复制,然后粘贴到你主题的函数文件里,保存。
/**
* 保存代码后访问 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://你网址/?update-wp-ca-bundle 提示更新成功就可以了。
解决方法三,插件替换证书:
上面两种解决方法觉得麻烦,那么可以直接在WP后台安装一个SSL Certificate Manager插件来解决。

评论已关闭
本文的评论功能已关闭,如有问题欢迎通过其他方式联系我们。