我正在尝试通过以下观察连接到 Apple APNS 服务器:

1) 端口 2195 已打开 2) 使用 APNS_SSLCertificate_Key.pem 的有效 key 密码 3) 从 https://www.entrust.net/downloads/binary/entrust_ssl_ca.cer 下载的委托(delegate)证书 (2048)

4) telnet 成功响应如下:



但是当我在我的服务器中运行以下 openssl 命令来测试 APNS 连接时:

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert  APNS_SSLCertificate_Key.pem -debug -showcerts -CAfile server-ca-cert.pem

我收到如下错误:



所以请建议如何解决这个问题

提前致谢 ......

最佳答案

我遇到了同样的问题;最终解决该错误的是从 OS/X Keychain Access 应用程序的系统根重新导出 Entrust 证书。

为了完整起见,我将完整解释我如何创建 key /证书文件(应该在 Apple 的 TechNote 2265 中:https://developer.apple.com/library/content/technotes/tn2265/_index.html)

创建您的 APN 证书和 key :

  • 运行钥匙串(keychain)访问;选择“登录”钥匙串(keychain)和“我的证书”类别
  • 选择名称格式为“Apple Development IOS Push Services: ...”的证书
  • 导出证书(在菜单中的"file"..“导出项目”下)
  • 导出为 .p12 格式。

    这现在包含加密交换格式的证书和私钥。下一步是将其转换为受密码保护的 .pem 文件
  • 使用终端,执行以下命令(当然,使用您自己的文件名):openssl pkcs12 -in PushCertKey.p12 -out PushCertKey.pem
    (您需要输入 .p12 文件的密码并为 .pem 文件提供另一个密码。)

    如果您真的真的不想在 .pem 文件上使用密码,请尝试:openssl pkcs12 -in PushCertKey.p12 -out PushCertKeyNoCrypt.pem -nodes

  • 创建 CA 证书文件:
  • 列表项
  • 运行钥匙串(keychain)访问应用程序
  • 转到系统根目录
  • 将名为“Entrust.net Certification Authority (2048)”的证书导出到 .pem 文件。
    注意:我的 Roots 容器有四个 Entrust 证书;其中两个名称为“Entrust.net Certification Authority (2048)”(但具有不同的证书扩展名,通过获取信息)。有效验证信任链的两个“Entrust.net Certification Authority (2048)”证书;另外两个 Entrust 证书不起作用。更重要的是,Apple TechNote 2265 指向的 Entrust 证书也不起作用。

    确保导出为 .pem 格式;默认为 .cer,这一步很容易错过。

  • 运行验证命令:
    openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert PushCertKey.pem -debug -showcerts -CAfile "Entrust.net Certification Authority (2048).pem"
    

    此服务器和进程假定您正在连接到 Apple 的开发沙盒 APN 服务器;如果您尝试使用生产 APN 服务器,则需要使用正确的服务器和端口。

    有关 openssl 的更多信息,我建议访问以下页面:
  • https://www.madboa.com/geek/openssl/
  • https://www.sslshopper.com/article-most-common-openssl-commands.html
  • http://gagravarr.org/writing/openssl-certs/general.shtml
  • 关于ssl - 无法连接到 APNS 沙盒服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6776864/

    10-13 06:33