尝试使用 keytool 转换 PFX 证书时:
keytool -importkeystore -srckeystore SomeCert.pfx -srcstoretype pkcs12 -srcstorepass SomePass -destkeystore SomeCert.jks -deststoretype jks -deststorepass SomePass
我得到以下异常
keytool error: java.security.cert.CertificateParsingException: java.io.IOException: Duplicate extensions not allowed
此外,当使用码头的 PKCS12Import 工具时,如此处所述,我得到了同样的例外。
主要原因如下:
Caused by: java.io.IOException: Duplicate extensions not allowed
at sun.security.x509.CertificateExtensions.parseExtension(CertificateExtensions.java:96)
at sun.security.x509.CertificateExtensions.init(CertificateExtensions.java:70)
at sun.security.x509.CertificateExtensions.<init>(CertificateExtensions.java:60)
at sun.security.x509.X509CertInfo.parse(X509CertInfo.java:723)
at sun.security.x509.X509CertInfo.<init>(X509CertInfo.java:152)
... 92 more
我正在使用 Windows 7,JDK 8u25_x64。
任何想法为什么会发生这种重复的扩展问题,以及如何解决?当我通过浏览器使用证书时(例如,通过 Firefox 访问某些 WS 的 WSDL 文件)它工作正常