cURL error 60: SSL certificate problem: certificate has expired解决办法

最近不少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插件来解决。

插件下载地址

给本文打分 post
奶爸建站笔记 Scroll to Top