osx 10.10 CURL POST到HTTPS url给出SSLRead()错误

我最近才升级到OSX 10.10 Yosemite,由于升级,我无法再将Curl POST转换为SSL url。


我首先使用了wordpress的wp_remote_request调用,还尝试在php中使用curl。两者(按预期)给出相同的错误消息:


错误号:56


错误字符串:SSLRead()返回错误-9806


注意:当我将POST卷曲到HTTP时,它可以正常工作。我认为这是PHP.ini或apache中的设置(升级后丢失了原始的HTTPD.conf文件...)。


谁能帮我吗?


慕桂英546537
浏览 327回答 3
3回答

慕少森

此SSL错误(OSStatus代码:9806)意味着由于建立连接时发生错误(例如,在某些无效命令上),服务器终止了您的连接。这似乎仅在到远程主机的SSL连接介于两者之间时才发生。SSL手册(SSL_get_error)没有对此进行详细说明,但是此错误消息来自libcurlSecureTransport / Darwinssl TLS后端使用的内置消息(您可以在SecureTransport.h头文件中找到其OSStatus ):errSSLClosedAbort           = -9806,    /* connection closed via error */根据我的经验,这通常发生在您位于代理后面或连接到使用身份验证机制的受限网络时。因此,请确认您已通过WiFi连接到正确的网络,并且其他HTTPS正常运行。如果不是,请检查是否需要指定代理凭据,或者您的ISP是否覆盖了证书链并需要某种身份验证,或者它基本上阻止了对其防火墙中某些站点的访问。

临摹微笑

我也有类似的SSLRead() return error -9806错误问题,也有SSL Version => SecureTransport。但就我而言,问题是我设置了curl CURLOPT_HTTP_VERSION选项:$curl = curl_init();    curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);如果删除该选项,则cURL将决定默认使用哪个版本。有关更多信息,请参见curl_setopt文档。这对我有用,并且我不需要使用cURL或PHP进行任何更改。但这是error -9806出现的许多情况之一的解决方案。
打开App,查看更多内容
随时随地看视频慕课网APP