VPS参考测评推荐
专注分享VPS主机优惠信息
衡天云优惠活动
华纳云优惠活动
荫云优惠活动

WordPress提示cURL error 60: SSL certificate...怎么修复?快速修复URL error 60: SSL certificate...报错解决办法

主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情!
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作

从 2021 年 9 月 30 日起,HTTP API 请求可能会停止在安装了 Let's Encrypt 证书的 WordPress 网站上工作。

WordPress提示cURL error 60: SSL certificate...怎么修复?快速修复URL error 60: SSL certificate...报错解决办法-主机参考

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

$res = wp_remote_get('https://zhujicankao.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 核心有一个根证书文件 /wp-includes/certificates/ca-bundle.crt,用于检查所有通过 HTTP API 发出的请求的 SSL。在此文件中,用于为您的站点创建证书的根证书之一已过期。因此,请求验证失败并生成此错误。

更详细的解释:

在不深入细节的情况下,非专家说几句话为什么过期的 DST 根 CA X3 证书会影响 Let's Encrypt 颁发的证书。每个验证证书的系统都有自己的受信任根证书存储库。在验证期间,系统将信任使用这些根证书之一的私钥签名的证书。根证书本身通常有很长的有效期,很少更改并且在生成最终主题证书(在本例中为域名证书)时不使用,相反,公钥基础设施意味着使用信任链 - 根证书是用于签署中间证书并已使用它们签署最终主题证书(域证书)。此外,为了让系统信任最终的主题证书,

当 Let's Encrypt 出现时,它的 ISRG Root X1 根证书(就像任何新的根证书一样)无法快速进入大量系统的可信证书存储。同时,要让项目成功运行,从一开始颁发的证书必须得到最多数量的“开箱即用”系统的信任(这些系统的用户没有任何额外的动作)。在这方面,对于证书,Let's Encrypt 开始使用通向根证书的信任链 DST Root CA X3,该证书被大多数系统识别。

随着下一次 WP 更新,比如 WordPress 5.9,这个错误会自行消失,但是如果您今天需要解决方案,或者如果您不打算更新 WordPress,但需要有效的 HTTP 请求,请执行下列操作。

cURL error 60: SSL certificate has expired 解决方法

您需要将 /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 的内容。

好了,错误将不再出现。

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

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

1、将以下代码添加到主题functions.php文件(或代码片段插件中)

/**
 * https://zhujicankao.com/66350.html
 */
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://zhujicankao.com/?update-wp-ca-bundle 页面。(将 zhujicankao 替换为您的域名...)

嗯,一切都恢复正常了。

这几篇文章你可能也喜欢:

本文由主机参考刊发,转载请注明:WordPress提示cURL error 60: SSL certificate...怎么修复?快速修复URL error 60: SSL certificate...报错解决办法 https://zhujicankao.com/66350.html

【腾讯云】领8888元采购礼包,抢爆款云服务器 每月 9元起,个人开发者加享折上折!
打赏
转载请注明原文链接:主机参考 » WordPress提示cURL error 60: SSL certificate...怎么修复?快速修复URL error 60: SSL certificate...报错解决办法
主机参考仅做资料收集,不对商家任何信息及交易做信用担保,购买前请注意风险,有交易纠纷请自行解决!请查阅:特别声明

评论 抢沙发

评论前必须登录!