密钥库不适用于Java 9

我已经使用portecle将JKS密钥库转换为P12格式,但它可能并不顺利。 密钥库使用Java 8(各种版本),但使用Java 9(OpenJDK 64位服务器VM(构建9内部+ 0-2016-04-14-195246.buildd.src,混合模式),我得到了

java.io.IOException: Invalid keystore format at sun.security.provider.JavaKeyStore.engineLoad(java.base@9-internal/JavaKeyStore.java:659) at sun.security.util.KeyStoreDelegator.engineLoad(java.base@9-internal/KeyStoreDelegator.java:219) at java.security.KeyStore.load(java.base@9-internal/KeyStore.java:1466) at org.eclipse.jetty.util.security.CertificateUtils.getKeyStore(CertificateUtils.java:52) at org.eclipse.jetty.util.ssl.SslContextFactory.loadKeyStore(SslContextFactory.java:998) at org.eclipse.jetty.util.ssl.SslContextFactory.load(SslContextFactory.java:252) at org.eclipse.jetty.util.ssl.SslContextFactory.doStart(SslContextFactory.java:219) 

有趣的是Java 8 keytool显示

 Keystore type: JKS Keystore provider: SUN Your keystore contains 5 entries ... entries listed 

而来自Java 9的那个显示

 Keystore type: PKCS12 Keystore provider: SUN Your keystore contains 5 entries ... entries listed 

我知道JEP 229并且我已经阅读了相关问题,但我看不出任何相关问题。

JDK keytool实用程序可以将JKS密钥库转换为PKCS12密钥库。 例如,使用JDK 9,

 $ keytool -importkeystore -srckeystore ks.jks -destkeystore ks.p12 

此外,自2016年以来已经有几个密钥库增强function,因此您应该使用更新版本的JDK 9,请参阅http://jdk.java.net/9/