alias - keytool -list显示p12 keystore 的不同别名,具体取决于您是否提供密码

标签 alias keytool private-key pkcs#12

特定p12文件上的行为确实很怪异。

如果我运行

keytool -list -storetype pkcs12 -keystore my_debug_keystore.p12 -storepass debug
keytool -v -list -storetype pkcs12 -keystore my_debug_keystore.p12 -storepass debug

我明白了
Alias name: 1
Creation date: Aug 17, 2014
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=sixminute, OU=, O=, C=IE
Issuer: CN=sixminute, OU=, O=, C=IE
Serial number: xxxxxxxxxxxxxxxxx
Valid from: Wed Nov 07 13:34:40 GMT 2012 until: Sun Nov 08 13:34:40 GMT 2037
Certificate fingerprints:
     MD5:  xxxxxxxxxxxxxxxxx
     SHA1: xxxxxxxxxxxxxxxxx
     Signature algorithm name: SHA1withRSA
     Version: 3


Your keystore contains 1 entry

1, Aug 17, 2014, PrivateKeyEntry,
Certificate fingerprint (MD5): xxxxxxxxxxxxxxxxx

但是,如果我没有在命令中提供密码,
keytool -list -storetype pkcs12 -keystore my_debug_keystore.p12
keytool -v -list -storetype pkcs12 -keystore my_debug_keystore.p12

输出是不同的
Alias name: 2
Creation date: Aug 17, 2014
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=sixminute, OU=, O=, C=IE
Issuer: CN=sixminute, OU=, O=, C=IE
Serial number: 2d36623161363935353a31336165303361636133313a2d38303030
Valid from: Wed Nov 07 13:34:40 GMT 2012 until: Sun Nov 08 13:34:40 GMT 2037
Certificate fingerprints:
     MD5:  xxxxxxxxxxxxxxxxx
     SHA1: xxxxxxxxxxxxxxxxx
     Signature algorithm name: SHA1withRSA
     Version: 3


Your keystore contains 1 entry

2, Aug 17, 2014, PrivateKeyEntry,
Certificate fingerprint (MD5): xxxxxxxxxxxxxxxxx

特别是,相同 key 的别名不同( key 的MD5和SHA1仍然相同)。

完全不知道为什么会是这种情况吗?

最佳答案

别名不是PKCS 12的概念。有一个友好名称属性,但它是非常可选的。因此,我想Java只是组成了它所报告的Alias名称。但是不知道为什么会有所不同,因为安全袋的顺序应该相同。

关于alias - keytool -list显示p12 keystore 的不同别名,具体取决于您是否提供密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25349631/

相关文章:

android - 使用 Google Play 提供的上传 key 签署 APK

Javascript读取私钥信息

php - 动态为mysql查询中的所有字段名分配别名

c - ISO C 是否允许对提供给 main() 的 argv[] 指针使用别名?

java - Facebook Android SDK 的 key 哈希

java - 如何使用使用 SSL 和通配符/自签名证书保护的 Maven 2 存储库?

java - 使用 JSch 打开 SSH 隧道时私钥无效

encryption - 有没有一种方法可以改变公钥,使得在进行一些修改后仍然可以使用私钥来解密?

c# - Visual Studio 设计器中的别名和命名空间冲突

mysql - 使用数学运算符在 mysql 列上设置别名