有很多原因会导致SSL验证失败。从太多重定向到错误开始.ini
文件/设置或只是缺少证书或子域。在任何情况下,您都需要搜索原因fix it. 它周围没有路可走。
但要暂时解决该问题(假设您需要进一步开发代码并稍后修复SSL错误),可以使用过滤器:
add_filter( \'https_ssl_verify\', \'__return_false\' );
当您在远程请求期间运行此操作时,应该将其包装在一个回调中,该回调附加到在此类HTTP请求期间触发的过滤器。确保检查是否确实要删除正确案例的验证,并确保只运行一次,而不会取消对其他请求的保护。
add_filter( \'http_request_args\', function( $params, $url )
{
// find out if this is the request you are targeting and if not: abort
if ( \'foo\' !== $params[\'foo\'] )
return $params;
add_filter( \'https_ssl_verify\', \'__return_false\' );
return $params;
}, 10, 2 );
如果这是一个公开发布的插件,那么您可能希望将其附加到用户可以打开或关闭的简单选项。您也可以先尝试验证的请求,如果没有(如果用户选择了未签名的请求),则切换到可能不安全的请求。
经验法则:
Do
never 执行不安全的请求,直到您的用户同意并知道风险。