【发布时间】:2010-11-17 00:29:18
【问题描述】:
我正在尝试为 iphone 实现一个独立的应用程序;我希望为 iphone 客户端使用 Apple 推送通知。 我收到 javax.net.ssl.SSLHandshakeException:收到致命警报:unknown_ca 以下是我连接到 apns 网关的 Java 代码:
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();
请帮助我了解可以在我的 Linux 机器上安装什么以及如何安装 ssl 证书。
编辑:
它现在对我有用,我重新创建了 Cert.p12,程序开始工作。我不知道不工作的确切原因是什么,但我猜它是 Cert.p12 文件损坏。
感谢大家的帮助。
【问题讨论】:
标签: java iphone push-notification sslhandshakeexception