【问题标题】:Java APNS Received fatal alert: certificate_unknownJava APNS 收到致命警报:certificate_unknown
【发布时间】:2025-08-24 13:55:02
【问题描述】:

我正在尝试使用 APNS 发送推送通知。我使用不同的配置文件(针对不同的 Apple 帐户)生成了不同的应用程序集。例如:我有使用 Apple Profile X 开发的应用程序 ABC,以及使用相同 Profile X 的提供者证书的 APNS 代码。当我使用此证书发送推送通知时,它们会正确传递到应用程序。

但是当我使用使用 Apple Profile Y 生成的提供商证书时,它不会将消息传递到使用 Profile X 开发的应用程序。

我想知道,如果我想向在我的服务器中注册的任何应用发送推送通知,我应该使用什么样的提供商证书?

是否有可以向任何应用发送消息的通用提供商证书?

我在交叉证书场景中测试时遇到以下异常:

Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
       at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
       at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136)
       at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1586)
       at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:865)
       at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1029)
       at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:677)
       at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
       at 

我确定我使用的证书是正确的,因为它适用于相同配置文件的应用程序。

如果需要,请要求更多说明。

【问题讨论】:

    标签: apple-push-notifications apns-sharp apns-php moonapns


    【解决方案1】:

    您不能使用一个证书将 APNS 发送到多个应用程序。 您不能使用为一个应用生成的证书将 APNS 发送到另一个应用。 它与单个应用程序绑定的每个证书只能用于向该应用程序发送推送通知。 除此之外,您可以为每个应用程序生成一个用于沙盒环境的证书和一个用于生产环境的证书。您不能使用沙盒证书将 APNS 发送到使用生产证书或其他方式构建的应用程序。

    【讨论】: