我正在写一个Android客户端,需要我打开的SSLSocket到代理服务器,做隧道握手,然后创建了隧道ANOTHER的SSLSocket的系统。 这里是我的代码来创建隧道:
SSLSocketFactory sslsocketfactory = securityService.getSslContextNoCerts().getSocketFactory();
SSLSocket sslSocket = (SSLSocket) sslsocketfactory.createSocket(proxyAddress.getAddress(),
proxyAddress.getPort());
sslSocket.setEnabledProtocols(new String[] { SecurityService.TLS10 });
sslSocket.setEnabledCipherSuites(SecurityService.CIPHERS);
sslSocket.startHandshake();
然后,我做隧道握手,然后:
SSLSocketFactory sslsocketfactory = securityService.getSslContext().getSocketFactory();
hostSocket = (SSLSocket) sslsocketfactory.createSocket(tunnel,
InetAddress.getByAddress(remoteAddress.getIpAddress()).getHostAddress(),
remoteAddress.getPort(), false);
hostSocket.setUseClientMode(false);
hostSocket.setNeedClientAuth(true);
securityService.setEnabledProtocols(hostSocket);
hostSocket.setEnabledCipherSuites(SecurityService.DATASESSION_CIPHERS);
hostSocket.startHandshake();
在这一点上,我得到这个消息的SSLProtocolException:
错误:140760FC:SSL例程:SSL23_GET_CLIENT_HELLO:未知协议(外部/ OpenSSL的/ SSL / s23_srvr.c:589 0xad12b3f0:00000000)
任何人都知道我能做到这一点? 我知道你的第一个问题将是通过SSL为什么层SSL,但我正在写一个客户端和现有的系统需要它。
任何帮助将非常感激。 Zhubin