2012-08-02 88 views
1

我在连接到https://test.salesforce.com的SOAP服务时遇到了一些问题。我使用基于PHP本地SoapClient的Toolkit-for-PHP v20.0(https://github.com/developerforce/Force.com-Toolkit-for-PHP)。无法使用SSL连接到test.salesforce.com

软件:

  • 的MacOS 10.8
  • 的MacPorts 2.1.2
  • PHP 5.3.15
  • OpenSSL的1.0.1_c

我30秒后收到的唯一错误消息(超时?)是:

[SoapFault]     
Could not connect to host 

奇怪的是,连接到http://test.salesforce.com(没有SSL)或连接到https://login.salesforce.com(与SSL)按预期工作。

我甚至设法使用soapUI登录到https://test.salesforce.com

所以我的猜测是必须有一些认证/握手问题,但我无法弄清楚如何获得更详细的错误信息或如何更改任何关于工具包设置。 我搜索谷歌,stackoverflow和SalesForce讨论板,但没有人似乎有这个特定的沙箱+ SSL问题。

有没有人有线索如何调试这个问题?


好的,我认为这是macports的openssl二进制文件的一个问题。显然,握手失败是因为我的客户端正在尝试服务器不理解的SSLv2/SSLv3握手。

openssl s_client -connect test.salesforce.com:443 -state 
CONNECTED(00000003) 
SSL_connect:before/connect initialization 
SSL_connect:SSLv2/v3 write client hello A 

[...end...] 

相同的命令与强制的SSLv3:

openssl s_client -ssl3 -connect test.salesforce.com:443 -state 
CONNECTED(00000003) 
SSL_connect:before/connect initialization 
SSL_connect:SSLv3 write client hello A 
SSL_connect:SSLv3 read server hello A 
depth=1 O = VeriSign Trust Network, OU = "VeriSign, Inc.", OU = VeriSign International Server CA - Class 3, OU = www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign 
verify error:num=20:unable to get local issuer certificate 
verify return:0 
SSL_connect:SSLv3 read server certificate A 
SSL_connect:SSLv3 read server done A 
SSL_connect:SSLv3 write client key exchange A 
SSL_connect:SSLv3 write change cipher spec A 
SSL_connect:SSLv3 write finished A 
SSL_connect:SSLv3 flush data 
SSL_connect:SSLv3 read finished A 

[...and so forth...] 

不能确定是怎么打出来的这个... Salesforce的工具换PHP使用PHP的原生SoapClient的,我不知道如何强制它使用SSLv3。

+0

相关的:http://stackoverflow.com/questions/9909232/php-soapclient-stream-context-option – AaL 2012-08-02 17:38:08

回答