IOS APNs p12 certifcate文件不能与Java一起使用

时间:2015-07-28 11:12:20

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

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

客户提供了一个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从他身边配置证书上传,我们每次都不能手动执行此操作

我们如何解决这个问题?

1 个答案:

答案 0 :(得分: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