【问题标题】:IOS APNs p12 certifcate files is not working with JavaIOS APNs p12 证书文件不适用于 Java
【发布时间】:2015-07-28 19:58:38
【问题描述】:

我正在尝试使用https://github.com/notnoop/java-apns APNs 推送库从服务器推送通知。

客户提供的 APNs p12 文件不适用于此库和其他一些 JAVA 工具

为了调查它,我尝试使用http://portecle.sourceforge.net/

它尝试对 BKS、JKS、UBER....等使用多种组合并给出类似的错误

java.io.IOException: exception decrypting data - java.security.InvalidKeyException: Illegal key size
    org.bouncycastle.jce.provider.JDKPKCS12KeyStore.cryptData(Unknown Source)

java.io.IOException: Wrong version of key store.
    org.bouncycastle.jce.provider.JDKKeyStore.engineLoad(Unknown Source)
    java.security.KeyStore.load(Unknown Source)

java.io.IOException: Wrong version of key store.
    org.bouncycastle.jce.provider.JDKKeyStore$BouncyCastleStore.engineLoad(Unknown Source)
    java.security.KeyStore.load(Unknown Source)

我尝试将客户提供的 p12 导入我的 Mac 笔记本电脑 KeyChain,然后我再次导出为新的 p12 文件,然后它工作正常。

但是客户应该使用一些API从他的身边配置证书上传,我们不能每次都手动这样做

我们如何解决这个问题?

【问题讨论】:

    标签: java apple-push-notifications ssl-certificate bouncycastle jks


    【解决方案1】:

    您必须安装 Java Cryptography Extension (JCE)。内置安全提供程序 (/lib/bin/security) 不允许使用更高安全性的密码。

    Java 6: http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

    Java 7: http://www.oracle.com/technetwork/es/java/javase/downloads/jce-7-download-432124.html

    Java 8: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

    【讨论】:

    • 应该不会影响 bouncycastle 吧?
    • Underneath BouncyCastle 也依赖于这些设置。你可以围绕它做一些骇人听闻的事情。但最简单的方法是将两个标准 jar 文件替换为 JCE 中的文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-19
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    相关资源
    最近更新 更多