修复cURL error 60: SSL certificate problem: certificate has expire
【摘要】 WordPress使用Let’s Encrypt方式api安装了错误:$res = wp_remote_get( 'https://wosigncom/' );if( is_wp_error( $res ) ){echo $res->get_error_message();}然后提示:cURL error 60: SSL certificate problem: certificate ha...
WordPress使用Let’s Encrypt方式api安装了错误:
$res = wp_remote_get( 'https://wosigncom/' );
if( is_wp_error( $res ) ){
echo $res->get_error_message();}
然后提示:cURL error 60: SSL certificate problem: certificate has expired
这错误是因为SSL证书根证书到期,发生的错误,需要补充根证书。
使用WoSign证书解决办法
域名提交到WoSign替换证书就可以了,有效期1年,浏览器信任度99%,带安全签章。
继续使用Let’s Encrypt证书解决办法。
Let’s Encrypt有效期3个月,会导致大部分浏览器不信任,网站不能访问。以下是解决办法说明
您需要更新/wp-includes/certificates/ca-bundle.crt文件的内容,将其更改为https://curl.se/ca/cacert.pem文件的内容。
在这种情况下更改核心文件是可以接受的,因为下次更新WP时,问题就会消失。
手动替换内容更新以解决问题
下载此文件 https://curl.se/ca/cacert.pem。
使用上述下载以更新/wp-includes/certificates/ca-bundle.crt的内容。
好了,报错将不再出现。
或添加代码片段来修复报错
当您能够从管理面板运行代码时,使用代码会很方便,例如使用Code Snippets插件。
将以下代码添加到 themes functions.php 文件中(或在Code Snippets 插件中)
/**
*Gotohttp://yoursite.com/?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,'BundleofCARootCertificates')){
$up=file_put_contents($crt_file,$new_str);
echo$up?'OK:ca-bundle.crtupdated':'ERROR:can`tputdatatoca-bundle.crt';
}
else{
echo'ERROR:can\'tdownloadcurl.haxx.se/ca/cacert.pem';
}
}
else{
echo'ERROR:ca-bundle.crtnotwritable';
}
exit;
使用后删除代码。
访问http://yoursite.com/?update-wp-ca-bundle页面。(yoursite.com替换自己域名)
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)