Safari推送通知 - 添加中间证书以在Java

时间:2016-09-28 07:47:19

标签: java apple-push-notifications bouncycastle

我目前正在尝试计算safari推送通知所需的签名。这一直有效,直到苹果改变了签署规则:

  

重要提示:2016年2月14日之后,您需要使用网络推送证书和中间证书签署推送包>。附加的createPushPackage.php>伴随文件中的>更新的create_signature函数处理两个证书。

我一直在使用BouncyCastle库来使用CMSSignedDataGenerator来实现它。这适用于.p12网络推送通知证书。现在我有AppleWWDRCA.pem中间证书(从AppleWWDRCA.cer转换而来),我一直在尝试将证书添加到现有的签名数据生成器中:

CMSSignedDataGenerator generator = new CMSSignedDataGenerator();

使用:

        CertificateFactory cf = CertificateFactory.getInstance("X.509");
        X509Certificate appleCert = (X509Certificate)cf.generateCertificate(servletContext.getResourceAsStream("/WEB-INF/AppleWWDRCA.pem"));
        JcaCertStore jcaCertStoreApple = new JcaCertStore(Collections.singleton(appleCert));
        generator.addCertificates(jcaCertStoreApple);

为什么这仍然给我"推送包的签名验证失败。"错误消息?

0 个答案:

没有答案