我在android应用程序上使用HTTPS调用REST服务。我已经有了这个工作代码,但现在我正在使用托管REST服务的新安装的服务器,我无法再建立连接。在android上使用HTTPS连接发生未知协议错误
这里是个例外:
javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x15b7768: Failure in SSL library, usually a protocol error
error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol (external/openssl/ssl/s23_clnt.c:683 0x402e5cc3:0x00000000)
应用程序使用Apache类与REST服务进行交互。即使在使用接受任何种类的证书的虚拟TrustManager时,我也会收到此错误。
从Android Navigator调用REST服务时,连接成功建立并正常工作。
Android手机正在运行HTC的最新4.0.3 Android。
REST服务是Apache上的托管mod_perl应用程序,配置了SSL支持。
在https://github.com/android/platform_external_openssl/blob/ics-mr0/ssl/s23_clnt.c上浏览OpenSSL源代码不会给我任何提示,除了低级别的问题。
任何有关如何进一步调试的建议?
可能的重复:http://stackoverflow.com/questions/6735408/apache-commons-net-ssl-handshake-error-with-android – petey 2012-08-02 16:42:33
你检查过新服务器是否正确安装了SSL证书? – petey 2012-08-02 16:42:54
还可以使用openssl s_client连接并查看服务器正在发送的内容。 – 2012-08-03 06:03:33