如何修复curl错误60: SSL证书问题:证书已过期问题

温馨提示:注册会员付费购买资源可永久免费下载更新版本

错误类型: WP内部错误 错误名称: SSL证书已过期 英文名称: cURL error 60: SSL certificate problem: certificate has expired 错误描述: WP core有一个根证书文件,/wp-includes/certificates/ca-bundle.crt用于检查通过HTTP API创建的所有请求的SSL。在此文件中,用于为您的站点创建证书的根证书之一已过期。因此,请求无法通过验证并生成此错误。

从2021年9月30日起,HTTP API请求可能会在安装了Let’s Encrypt certificate的WordPress网站上停止工作。我们之前已经警告过您,Let’s Encrypt根证书将会过期,这可能会导致问题。

例如,这样的请求会导致错误:

$res = wp_remote_get( ‘https://wp-kama.com/’ );if( is_wp_error( $res ) ){ echo $res->get_error_message();}

然后,您会遇到下面的错误提示:

cURL错误60: SSL证书问题:证书已过期

这样的错误随处可见,比如:

在WP管理面板中检查WordPress更新时。

检查插件更新时。

当访问任何服务的api时。比如TinyPNG图像压缩等使用任何类型请求的插件。

为什么我们会看到错误证书已经过期?

简而言之,WP core有一个根证书文件,/WP-includes/certificates/ca-bundle . CRT用于检查所有通过HTTP API创建的请求的SSL。在此文件中,用于为您的站点创建证书的根证书之一已经过期。因此,无法验证该请求,并生成此错误。

更详细的解释:

不赘述,非专业人士说几句,为什么过期的DST根CA X3证书会影响到Let’s Encrypt颁发的证书。每个验证证书的系统都有自己的可信根证书库。在验证期间,系统将信任用这些根证书之一的私钥签名的证书。根证书本身通常有很长的有效期,很少更改,并且在生成最终的主题证书(在本例中是域名证书)时不使用。相反,公钥基础设施意味着使用信任链——根证书用于签署中间证书,并且已经使用它们签署最终的主题证书(域证书)。此外,为了让系统信任最终的主题证书,它必须能够跟踪从该证书到其受信任的根证书之一的完整链。

当Let’s Encrypt出现时,它的ISRG根X1根证书(就像任何新的根证书一样)无法快速进入大量系统的可信证书库。同时,为了项目的成功运行,从一开始就颁发的证书必须得到最大数量的“现成”系统的信任(这些系统的用户没有任何额外的操作)。在这方面,对于证书,让我们加密开始使用信任链DST根CA X3导致根证书,这是公认的大多数系统。

随着下一次的WP更新,这个错误会自己消失,但是如果你今天需要一个解决方案,或者你不打算更新WordPress,但是你需要一个有效的HTTP请求,请做以下事情。

Curerror60: SSL证书已过期解决方案

您需要更新/WP-includes/certificates/ca-bundle . CRT文件的内容,并将其更改为https://curl.se/ca/cacert.pem文件的内容。

在这种情况下,更改核心文件是可以接受的,因为下次更新WP时问题就会消失。可以在GitHub上查看相应的投稿。

手动替换内容更新来解决问题。

下载这个文件,https://curl.se/ca/cacert.pem.

使用上面的下载更新/WP-includes/certificates/ca-bundle . CRT的内容。

搞定了。错误会消失。

或者添加代码片段来修复错误。

当您能够从管理面板运行代码时,使用代码会很方便,比如使用代码片段插件。

将以下代码添加到主题functions.php文件中(或代码片段插件中):/* ** goto http://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,’ CA根证书捆绑’){$ up = file _ put _ contents($ CRT _ file,$ new _ str); echo $up?确定:ca-bundle.crt已更新’:’错误:无法将数据放入ca-bundle . CRT ‘; } else { echo ‘错误:无法下载curl.haxx.se/ca/cacert.pem’;}}else {echo ‘错误:ca-bundle.crt不可写’; }退出;}用完后删除这段代码。

访问http://YOURSITE.com/?更新-WP-ca-捆绑页面。(用你的域名替换YOURSITE.com……)

搞定了。一切都应该像以前一样工作。

声明:

1,本站分享的资源来源于用户上传或网络分享,如有侵权请联系站长。

2,本站软件分享目的仅供大家学习和交流,请不要用于商业用途,下载后请于24小时后删除。

3,如果你也有好的建站资源,可以投稿到本站。

4,本站提供的所有资源不包含技术服务请大家谅解!

5,如有链接无法下载,请联系站长!

6,特别声明:仅供参考学习,不提供技术支持,建议购买正版!如果发布资源侵犯了您的利益请留言告知!


创网站长资源网 » 如何修复curl错误60: SSL证书问题:证书已过期问题