2010-09-01 112 views
2

我们公司几周前从Thawte购买了代码签名证书。当我们最终从采购团队收到证书时,他们不知道证书的别名!遗失代码签名证书别名

我似乎不能导入没有别名的证书,他们根本不知道它是什么。有没有办法检索别名?有其他人遇到这个问题吗?有没有别名的导入方式?

+0

什么是密钥库格式 - JKS或其他?你用什么工具 - keytool,openssl或其他? – 2010-09-01 07:58:40

+1

您的团队中有人需要被解雇:-) – 2010-09-01 09:01:51

回答

1

尝试用:

keytool -list -keystore certificate.jks 

(请注意,如果您的密钥库是不是JKS,例如,PKCS12,您可以添加一个可选-storetype选项来改变仓库类型:)

keytool -list -keystore certificate.p12 -storetype PKCS12 

你会碰到这样的:

仓库类型:JKS 密钥库提供:SUN

您的keystore包含1周

的myKey,2010年2月1日,trustedCertEntry, 证书指纹(MD5):0F:73:59:5C:35:8C:F2:F0:27:7E:F7: B7:AF:0A:95:B4

您的证书别名显示在证书说明的第一行,这里是'mykey'。

3

别名是在创建RSA证书的私钥期间指定的。它不是由证书签名机构决定的,而是由创建私钥和公钥的人决定的。

我不能说您的采购部门是否应该知道这一点,但您需要与产生CSR的人员/部门确认用于生成CSR的工具包以及密钥存储格式。

现在,假设Java keytool实用程序用于创建CSR,并且私钥在JKS密钥库中进行管理,那么可以使用keytool命令来确定密钥库的内容(以及别名) 。这可以使用keytool -list完成,如其他答案中所示。运行示例如下证明,与出现在输出别名:

keytool -list -v -keystore foo.jks 
Enter keystore password: 

Keystore type: JKS 
Keystore provider: SUN 

Your keystore contains 1 entry 

Alias name: foo 
Creation date: Sep 1, 2010 
Entry type: PrivateKeyEntry 
Certificate chain length: 1 
Certificate[1]: 
Owner: CN=foo, OU=foo, O=foo, L=foo, ST=foo, C=foo 
Issuer: CN=foo, OU=foo, O=foo, L=foo, ST=foo, C=foo 

注意,你不需要知道密钥库密码读取密钥库的内容,在这种情况下,将显示一个警告。

如果您使用其他工具包和/或密钥库格式,则需要采用类似的方法来确定密钥库的内容,因为别名不会出现在CSR中。