无法使用SSL连接到test.salesforce.com


Unable to connect to test.salesforce.com with SSL

我在连接到SOAP服务时遇到一些问题https://test.salesforce.com.我使用PHP v20.00工具包(https://github.com/developerforce/Force.com-Toolkit-for-PHP)它基于PHP的原生SoapClient。

软件:

  • 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)按预期工作。

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

因此,我猜测肯定存在一些认证/握手问题,但我不知道如何获得更详细的错误消息,也不知道如何更改工具包设置。我搜索了谷歌、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...]

真的不知道该从中得到什么。。。php的SalesForce工具包使用php的原生SoapClient,我不知道如何强制它使用SSLv3。

这是最新版本的openssl 1.0.1:的macports端口的一个已知错误

http://trac.macports.org/ticket/33715

可能的解决方案:安装较旧的openssl版本,在本例中为openssl 1.0.0h:

cd /opt/local/src
sudo svn checkout -r 90715 http://svn.macports.org/repository/macports/trunk/dports/devel/openssl
cd openssl
sudo port install

取自:

  • https://trac.macports.org/wiki/howto/InstallingOlderPort
  • http://trac.macports.org/ticket/33715#comment:30