如何修复cURL error 60: SSL certificate problem: certificate has expired问题

从2021年9月30日起,HTTP API请求可能会停止在安装了Let’s Encrypt证书的WordPress网站上工作。此前我们有提醒过大家注意Let’s Encrypt根证书将过期可能会带来问题。
例如,这样的请求会导致错误:
$res = wp_remote_get( 'https://wp-kama.com/' );
if( is_wp_error( $res ) ){
echo $res->get_error_message();
}然后你就会遭遇下方的报错提示:
cURL error 60: SSL certificate problem: certificate has expired
这样的错误将随处可见,例如:
- 在WP管理面板检查WordPress更新时。
- 检查插件更新时。
- 访问任何服务的api时。例如,TinyPNG图像压缩以及其他一些使用任何类型请求的插件。
为什么我们看到错误证书已过期?
简而言之,WP core有一个根证书文件,/wp-includes/certificates/ca-bundle.crt用于检查通过HTTP API创建的所有请求的SSL。在此文件中,用于为您的站点创建证书的根证书之一已过期。因此,请求无法通过验证并生成此错误。
随着下一次WP更新,此错误将会自行消失,但如果您今天需要解决方案,或者您不打算更新WordPress,但需要有效的HTTP请求,请执行以下操作。
cURL error 60: SSL certificate has expired解决办法
您需要更新/wp-includes/certificates/ca-bundle.crt文件的内容,将其更改为https://curl.se/ca/cacert.pem文件的内容。
手动替换内容更新以解决问题
或添加代码片段以修复报错
当您能够从管理面板运行代码时,使用代码会很方便,例如使用代码片段插件。
版权声明:
作者:后浪云
链接:https://idc.net/help/4529/
文章版权归作者所有,未经允许请勿转载。
THE END
