4

p12ファイルを使用してJavaサーバーからAppleプッシュ通知を試行すると、エラーが発生します。p12ファイルまたはJavaコードに問題がありますか?

run:
@:theodore nonis
C=IN, CN=Apple Development IOS Push Services: com.ducont.myPushApp, UID=com.ducont.myPushApp
theodore nonis
ok
init Stores...
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
        at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1591)
        at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:187)
        at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:181)
        at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:975)
        at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:123)
        at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:516)
        at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:454)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:884)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1096)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1123)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1107)
        at javatest.Main.APNSender(Main.java:88)
        at javatest.Main.main(Main.java:114)
Caused by: sun.security.validator.ValidatorException: No trusted certificate found
        at sun.security.validator.SimpleValidator.buildTrustedChain(SimpleValidator.java:304)
        at sun.security.validator.SimpleValidator.engineValidate(SimpleValidator.java:107)
        at sun.security.validator.Validator.validate(Validator.java:218)
        at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126)
        at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209)
        at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249)
        at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:954)
        ... 9 more
BUILD SUCCESSFUL (total time: 2 seconds)
4

3 に答える 3

0

Windows の場合は、以下の手順を試してください。

ここから jar をダウンロードしますhttps://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

local_policy.jar と US_export_policy.jar を $JAVA_HOME/jre/lib/security にコピーします (注: これらの jar は既に存在するため、上書きする必要があります)。

次に、アプリケーションを再起動して、この例外を取り除きます。

于 2018-10-17T05:30:30.460 に答える
0

これは Java 1.9 が原因である可能性があります。Java 1.8 に切り替えると問題が解決する場合があります。

于 2017-12-10T13:16:09.317 に答える
-2

これは証明書の問題です。次の 2 つの解決策があります。

1 信頼できる証明書を使用する

2 証明書チェックを無効にします。プレーンな Java コードの場合は、そのように実行できます (こちらを参照)。

p12 には、TrustManages をセットアップする可能性があるはずです。

于 2012-05-25T07:03:27.057 に答える