我试图实现对iphone独立的应用程序; 为此,我希望使用苹果推送通知的iPhone客户端。 我得到javax.net.ssl.SSLHandshakeException:收到致命警报:unknown_ca以下是我的Java代码连接到APNS网关:
int port = 2195;
String hostname = "gateway.sandbox.push.apple.com";
char[] passwKey = "password".toCharArray();
KeyStore ts = KeyStore.getInstance("PKCS12");
ts.load(new FileInputStream("/path/to/file/Cert.p12"), passwKey);
KeyManagerFactory tmf = KeyManagerFactory.getInstance("SunX509");
tmf.init(ts, passwKey);
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(tmf.getKeyManagers(), null, null);
SSLSocketFactory factory = sslContext.getSocketFactory();
SSLSocket socket = (SSLSocket) factory.createSocket(hostname,port);
String[] suites = socket.getSupportedCipherSuites();
socket.setEnabledCipherSuites(suites);
//start handshake
socket.startHandshake();
请帮我明白了什么,以及如何将SSL证书可以在我的Linux机器上安装。
编辑:
现在工作对我来说,我重新Cert.p12,程序开始工作。 我不知道什么是不工作的确切原因,但我想它会损坏Cert.p12文件。
感谢大家的帮助。