更改 curl SSL 版本

3
我正在使用SOAP与webservice通信。我在一个有缺陷的服务器上运行它,但它运行得很好。现在我在一个配置不同但更好的服务器上运行它。在新服务器上,我遇到了身份验证错误,我认为问题是curl的SSL版本。我记得应该是OpenSSL。在两台服务器上执行phpinfo()会给我带来差异。
工作服务器:SSL Version OpenSSL/0.9.8b
不工作的服务器:SSL Version NSS/3.13.1.0 服务器是安装了CentOS v6和Parallels Plesk Panel 11.5的VPS。
编辑
webservice需要NTLM身份验证,因此我正在使用这个类,它在旧服务器上运行良好。http://tcsoftware.net/blog/2011/08/php-soapclient-authentication/

你遇到了哪些身份验证错误? - Matt
1
401错误:完整的错误信息为“错误代码:401未经授权。服务器需要授权才能满足请求。访问Web服务器被拒绝。请联系服务器管理员。(12209)”。 - Timo002
我在使用PHP的curl时遇到了类似的问题,但是我得到的错误信息是"SSL连接错误"。为了解决这个问题(也许对你有帮助),我设置了以下的curl选项:curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, "rsa_rc4_128_sha"); - Matt
1个回答

1
我解决了我的问题,但与 cURL SSL 版本无关。我不得不将 cURL 设置中的 CURLOPT_HTTPAUTH 从 CURLAUTH_ANY 更改为 CURLAUTH_NTLM。
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM);

这有点奇怪,因为根据http://nl3.php.net/curl_setoptCURLAUTH_ANY代表:

CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接