【问题标题】:keytool reports a pkcs12 keystore as 'jks'keytool 将 pkcs12 密钥库报告为“jks”
【发布时间】:2018-03-29 18:53:45
【问题描述】:

keytool 将Keystore type 报告为JKS。预计是PKCS12。

$ $(dirname $(readlink -f $(which keytool)))/java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
$ keytool -genkey -storetype PKCS12 -keystore foo.p12 -dname "CN=foo" -storepass password -keypass password
$ keytool -list -keystore foo.p12 -storepass password

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

mykey, 18/10/2017, PrivateKeyEntry,
Certificate fingerprint (SHA1): FD:2A:C7:EE:B4:D8:41:91:71:25:C2:3F:8D:89:11:6F:F8:D6:F3:73

这是创建 pkcs12 密钥库的正确方法吗?

【问题讨论】:

    标签: java keytool pkcs#12


    【解决方案1】:

    无法重现:

    C:\Temp>keytool -genkey -storetype PKCS12 -keystore foo.p12 -dname "CN=foo" -storepass password -keypass password
    
    C:\Temp>keytool -list -keystore foo.p12 -storepass password
    keytool error: java.io.IOException: Invalid keystore format
    
    C:\Temp>java -version
    java version "1.8.0_40"
    Java(TM) SE Runtime Environment (build 1.8.0_40-b26)
    Java HotSpot(TM) Client VM (build 25.40-b25, mixed mode, sharing)
    
    C:\Temp>keytool -list -keystore foo.p12 -storepass password -storetype PKCS12
    
    Keystore type: PKCS12
    Keystore provider: SunJSSE
    
    Your keystore contains 1 entry
    
    mykey, 18/10/2017, PrivateKeyEntry,
    Certificate fingerprint (SHA1): 3F:C2:78:0D:E5:8D:11:68:2E:EB:31:D3:65:53:69:9F:
    87:65:63:3A
    

    这是创建 pkcs12 密钥库的正确方法吗?

    是的,但这不是正确的列出方式。根据我上面的最后一个示例,您需要-storetype PKCS12。

    【讨论】:

    • ...我要注意的是,您正在使用不同版本的 Java 进行测试。
    • 是的。在 jdk 1.7.0_151 上获得与 @EJP 相同的结果。似乎使用 keytool,这是一个“如果我想要你的意见,我会把它给你”的情况
    • 得到与java version "1.8.0_151"的答案相同的结果。
    猜你喜欢
    • 2017-07-23
    • 1970-01-01
    • 2018-10-24
    • 2015-09-22
    • 2011-06-27
    • 2012-12-31
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    相关资源
    最近更新 更多