无法验证主机的SSL证书

时间:2014-06-04 作者:Anagio

我在WooCommerce创建的日志文件中发现此错误

“无法验证主机的SSL证书。”

WordPress文件正在生成错误/wp-includes/class-http.php

http://hookr.io/3.8.2/classes/wp_http_streams/

我已经尝试在我的函数文件中设置以下内容以禁用SSL验证,但仍然出现错误

add_filter( \'https_ssl_verify\', \'__return_false\' );
add_filter( \'https_local_ssl_verify\', \'__return_false\' );
第834行,共class-http.php 我试过换这条线

$connect_host = $secure_transport ? \'ssl://\' . $connect_host : \'tcp://\' . $connect_host;

$connect_host = $secure_transport ? \'sslv3://\' . $connect_host : \'tcp://\' . $connect_host;

变化是sslv3

我需要这个来连接授权。网是否有可以用来重写类中的方法的筛选器,如果有,是哪个?我知道的足够多,不能修改核心代码,这只是为了测试。

谢谢

1 个回复
SO网友:Bryan \'BJ\' Hoffpauir Jr.

我不建议禁用ssl验证-这会使您的系统容易受到潜在中间人攻击as explained in this SO post. 此外,您现在使用sslv3很可能会导致此问题,具体原因是Authorize.net identified it as vulnerable to the POODLE compromise.

自从那件事发生后,many vendors removed the older authorize.net CA certificate bundles from their OpenSSL packages 通过更新。

问题的根本原因似乎是您的应用程序can\'t seem to locate where to find the updated bundle of root CA certificates 根据上面的线程,Authorize已经弃用了原来的线程。净值:

根据PHP手册openssl documentation on the cainfo parameter:

调用将验证签名/证书的函数时,cainfo参数是一个数组,其中包含指定受信任CA文件位置的文件名和目录名。如果指定了目录,那么它必须是openssl命令使用的格式正确的哈希目录。

这意味着您可以下载一个更新的CA证书包(或者只获取您需要连接到authorize.net的特定证书)。

批准净额github project for their php-sdk 包括更新的证书集合,如果使用newly updated (as of 4 days ago) bundle.

从您的代码示例中不清楚您是否已经在使用他们的SDK。如果没有,您应该能够下载该捆绑包并根据extended examples using the cainfo parameter 在重新启用验证时使用的任何函数中。

如果是这样,您可能需要更新作曲家。json获取sdk的最新版本。

结束

相关推荐

Search with filters and title

我想搜索custom_post 按标题和ACF字段。所以,我用了WP_Query WordPress函数,但我不能按标题过滤,只能按过滤器过滤。当我提交表单时,我有这样的URL:http://example.com/?s=titre&filter1=condition1&filter2=condition2&filter3=condition3 我的代码:$title = $_GET[\'s\']; $args = array( \'pagenam