如何修复WordPress无法建立与WordPress.org的安全连接

您是否正在寻找解决方案,以解决WordPress无法建立与WordPress仪表板上出现的WordPress.org错误的安全连接?

一个意料之外的问题发生了。 WordPress.org或此服务器的配置可能有问题。如果您仍然遇到问题,请尝试 支持论坛。 (WordPress无法建立与WordPress.org的安全连接。请与您的服务器管理员联系。)

在日志中也可以看到相同的内容。

tail /var/log/nginx/kifarunix-demo.error.log
...
2020/03/07 15:18:42 [error] 23961#23961: *3353 FastCGI sent in stderr: "PHP message: PHP Warning:  An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums. (WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.) in /var/www/html/app.kifarunix-demo.com/wp-includes/update.php on line 380" while reading upstream, client: 192.168.56.1, server: app.kifarunix-demo.com, request: "POST /wp-admin/update.php?action=upload-plugin HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "app.kifarunix-demo.com", referrer: "https://app.kifarunix-demo.com/wp-admin/plugin-install.php"
...

那是什么导致这个错误呢?

WordPress捆绑了与WordPress REST API联系的机制,可以从中获取包括WordPress核心更新,插件和主题更新在内的更新。

当更新可用时,WordPress能够显示有关各个更新的通知。

如果WordPress无法连接到WordPress网站以获取此信息,则可能会遇到此类错误。

嗯,在线上有很多建议的解决方案,它们解释了如何解决此错误,其中包括:

  • 确保curl(PHP扩展)已安装
  • 确保没有防火墙阻止与 api.wordpress.org 要么 downloads.wordpress.org
  • 确保 api.wordpress.org 要么 downloads.wordpress.org 您的DNS可以解析这些站点
  • 确保您拥有最新版本的 openssl 命令已安装。
  • 没有与SELinux相关的问题
  • 和许多其他解决方案

但是,有一种解决方案非常出色,可以帮助我从WordPress支持论坛解决此问题。

如何修复WordPress无法建立与WordPress.org的安全连接

免责声明: 我不能保证此解决方案对您有用,因为该解决方案本身并不是我自己的发现。只是尽你所能。

提供的解决方案建议您必须编辑WordPress cURL.php 配置并设置传输选项以定义有关WordPress如何连接到的自定义地址 api.wordpress.orgdownloads.wordpress.org 同时使用HTTP和HTTPS连接。

要实施建议的解决方案,请先为您的wordpress创建一个备份 cURL.php 配置文件。

cp /var/www/html/app.kifarunix-demo.com/wp-includes/Requests/Transport/cURL.php /var/www/html/app.kifarunix-demo.com/wp-includes/Requests/Transport/cURL.php.old

接下来打开文件进行编辑,并在文件末尾添加以下配置。

vim cp /var/www/html/app.kifarunix-demo.com/wp-includes/Requests/Transport/cURL.php
...
add_action('http_api_curl', 'custom_curl_resolve', 10, 3 );
function custom_curl_resolve( $handle, $r, $url ) {
	curl_setopt($handle, CURLOPT_RESOLVE, array(
		"api.wordpress.org:80:XXX.XXX.XXX.XXX", 
		"api.wordpress.org:443:XXX.XXX.XXX.XXX", 
		"downloads.wordpress.org:80:XXX.XXX.XXX.XXX", 
		"downloads.wordpress.org:443:XXX.XXX.XXX.XXX")
	);
}

其中XXX.XXX.XXX.XXX是提供的域的相应IP地址。

获取api.wordpress.org域的IP地址和downloads.wordpress.org域。

dig +short api.wordpress.org
198.143.164.251
dig +short downloads.wordpress.org
198.143.164.250

更新配置,使其外观如下所示,其中IP地址已更新。

add_action('http_api_curl', 'custom_curl_resolve', 10, 3 );
function custom_curl_resolve( $handle, $r, $url ) {
	curl_setopt($handle, CURLOPT_RESOLVE, array(
		"api.wordpress.org:80:198.143.164.251", 
		"api.wordpress.org:443:198.143.164.251", 
		"downloads.wordpress.org:80:198.143.164.250", 
		"downloads.wordpress.org:443:198.143.164.250")
	);
}

保存并退出配置文件。

确保没有防火墙阻止与这些站点的连接。

curl https://api.wordpress.org -I
HTTP/1.1 302 Found
Server: nginx
Date: Sat, 07 Mar 2020 14:32:45 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Location: https://developer.wordpress.org/rest-api/
X-Frame-Options: SAMEORIGIN
curl http://api.wordpress.org -I
HTTP/1.1 302 Found
Server: nginx
Date: Sat, 07 Mar 2020 14:33:59 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Location: https://developer.wordpress.org/rest-api/
X-Frame-Options: SAMEORIGIN
curl http://downloads.wordpress.org -I
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Sat, 07 Mar 2020 14:34:39 GMT
Content-Type: text/html
Content-Length: 162
Connection: keep-alive
Location: https://downloads.wordpress.org/
curl https://downloads.wordpress.org -I
HTTP/1.1 302 Moved Temporarily
Server: nginx
Date: Sat, 07 Mar 2020 14:36:18 GMT
Content-Type: text/html
Content-Length: 138
Connection: keep-alive
Location: https://wordpress.org/download/
X-Frame-Options: SAMEORIGIN
X-nc: HIT ord 6

接下来,重新启动您的Web服务器。

重新启动Web服务器之前,请确保没有错误。

nginx -t
httpd -t
apachectl configtest

重新启动;

systemctl restart nginx
systemctl restart httpd

而且,错误在您的WordPress仪表板上消失了。仅此而已,有关如何WordPress无法建立与WordPress.org的安全连接

我们希望这也对某人有所帮助。

在下面的参考链接上阅读更多内容;

错误:WordPress无法建立与WordPress.org的安全连接

Sidebar