gpt4 book ai didi

java - SSLHandshakeException unknown_ca apns java

转载 作者:搜寻专家 更新时间:2023-11-01 03:45:34 25 4
gpt4 key购买 nike

我正在尝试为 iphone 实现一个独立的应用程序;为此,我希望为 iphone 客户端使用 Apple Push 通知。我收到 javax.net.ssl.SSLHandshakeException: Received fatal alert: 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 文件。

谢谢大家的帮助。

最佳答案

未知_ca:

Received a valid certificate chain or partial chain, but the certificate was not accepted because the CA certificate could not be located or could not be matched with a known, trusted CA. This message is always fatal.

您可能需要将证书添加到您的 jre 的 cacerts 文件(通常位于 lib/security 下)。查看 keytool 的文档及其 -import 选项以获取更多信息。

您可能可以通过进一步研究 cacerts 文件和 key 工具找到如何执行此操作的示例。

关于java - SSLHandshakeException unknown_ca apns java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1233206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com