Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IOS APNs p12认证文件不适用于Java_Java_Apple Push Notifications_Ssl Certificate_Bouncycastle_Jks - Fatal编程技术网

IOS APNs p12认证文件不适用于Java

IOS APNs p12认证文件不适用于Java,java,apple-push-notifications,ssl-certificate,bouncycastle,jks,Java,Apple Push Notifications,Ssl Certificate,Bouncycastle,Jks,我正在尝试使用APNs推送库从服务器推送通知 客户提供了一个APNs p12文件,该文件不适用于此库和其他一些JAVA工具 为了调查它,我尝试使用 它尝试对BKS、JKS、UBER等使用多种组合,并给出如下错误 java.io.IOException: exception decrypting data - java.security.InvalidKeyException: Illegal key size org.bouncycastle.jce.provider.JDKPKCS12

我正在尝试使用APNs推送库从服务器推送通知

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

为了调查它,我尝试使用

它尝试对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笔记本电脑钥匙链,然后我再次导出为新的p12文件,然后工作正常

但是客户应该使用一些API来配置从他那边上传的证书,我们不能每次都手动完成


我们如何解决这个问题?

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

Java 6:

Java 7:

Java 8:

不应该影响bouncycastle,是吗?bouncycastle也依赖于这些设置。你可以在这方面做一些粗俗的事情。但最简单的方法是用JCE中的文件替换两个标准jar文件。