繁体   English   中英

带有cURL的PHP​​脚本可在一台服务器上运行,而不能在另一台服务器上运行

[英]PHP Script with cURL works on one server…does not work on other server

预先感谢您的所有帮助。 这是我的问题:

我有一个双节点服务器配置,其中两个服务器(应该)完全相同。 两者都安装了PHP。 我可以在一个节点上完美运行我的cURL PHP脚本,但不能在另一个节点上运行。 这是两个实例的详细(调试)输出:

已知工作(节点2):

stderr=* About to connect() to company.sharepoint.com port 443
*   Trying 191.234.148.26... * connected
* Connected to company.sharepoint.com (191.234.148.26) port 443
* successfully set certificate verify locations:
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* SSL connection using AES256-SHA
* Server certificate:
*        subject: /C=US/ST=WA/L=Redmond/O=Microsoft/CN=*.sharepoint.com
*        start date: 2014-04-14 22:01:07 GMT
*        expire date: 2016-04-13 22:01:07 GMT
*        subjectAltName: company.sharepoint.com matched
*        issuer: /DC=com/DC=microsoft/DC=corp/DC=redmond/CN=MSIT Machine Auth CA 2
* SSL certificate verify ok.
> POST /_forms/default.aspx?wa=wsignin1.0 HTTP/1.1
Host: company.sharepoint.com
Accept: */*
Content-Length: 1021
Content-Type: application/x-www-form-urlencoded

错误(节点1):

* About to connect() to company.sharepoint.com port 443
*   Trying 191.234.148.26... * connected
* Connected to company.sharepoint.com (191.234.148.26) port 443
* successfully set certificate verify locations:
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* Unknown SSL protocol error in connection to company.sharepoint.com:443 
* Closing connection #0
PHP Fatal error:  Uncaught exception 'Exception' with message 'Curl error: Unknown SSL     protocol error in connection to company.sharepoint.com:443 ' in     /opt/CLA2/sharepoint/sharepoint.php:391
Stack trace:
#0 /opt/CLA2/sharepoint/sharepoint.php(39): getAuthCookies('t=EwDwAk6hBwAUG...', 'https://paychex...', '1')
#1 {main}
   thrown in /opt/CLA2/sharepoint/sharepoint.php on line 391

有什么建议么? 我困惑为什么两个假定相同的节点会有不同的结果。

再次感谢你的帮助!

Unknown SSL protocol error表示SSL协商失败。 这可能是由于密码或SSL版本不兼容所致。 您可以尝试显式设置密码和版本来解决此问题。

使用Qualys SSLtest ,支持的密码是:

TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_RC4_128_MD5

支持的版本是SSLv3TLSv1

所以你可以做

curl_setopt($handle, CURLOPT_SSLVERSION, 3);
curl_setopt($handle, CURLOPT_SSL_CIPHER, 'TLS_RSA_WITH_AES_256_CBC_SHA:TLS_RSA_WITH_AES_128_CBC_SHA:TLS_RSA_WITH_3DES_EDE_CBC_SHA');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM