使用新的代码签名证书更新java密钥库别名

时间:2014-09-17 18:40:54

标签: java code-signing keystore keytool

我已尝试搜索此内容,所有文档似乎都是从创建新密钥库和/或新别名的角度出发。但是,我有一个带有我想要的别名的密钥库作为PrivateKeyEntry,并且安装了即将到期的Globalsign代码签名证书。

现在,我想知道在同一别名/ PrivateKeyEntry下使用新证书更新证书的正确程序?

TIA求助。

此致 B.K。

2 个答案:

答案 0 :(得分:1)

也许只是删除现有别名并添加新别名?

  

$ keytool -delete -alias mydomain -keystore keystore.jks

辅助功能很少

  

$ keytool -list -v -keystore keystore.jks
  $ keytool -list -v -keystore keystore.jks -alias mydomain

如果您需要导出私钥,请使用此答案作为参考。普通的keytool命令不会导出私钥部分。 How do I list / export private keys from a keystore?

答案 1 :(得分:0)

我想我明白了!

答案是:  

  • 备份密钥库文件。

    ~ $ cp -a ~/.keystore.jks ~/baks/20140917.keystore.jks 
    

  • 从现有别名创建新的证书签名请求文件。

    ~ $ keytool -certreq -v -alias myApp2 -file 20140917_myApp2_certreq.csr -keystore ~/.keystore.jks
    

  • 转到Globalsign(或您的CA所在的任何人),登录您的帐户,下订单签名证书续订。
  • 上传您在上面创建的CSR文件,或打开文件并复制内容,包括" -----开始新证书请求-----"和" -----结束新证书请求-----"行,并将其粘贴到CSR的文本框字段中。
  • 收到回复电子邮件后,请点击下载新证书页面的链接,然后将新证书下载到您的系统。
  • 检查根证书和中间CA证书是否仍然相同。如果它们不同/更新,请将新的添加到您的密钥库和/或您的" cacerts"密钥库中。

    ~ $ keytool -importcert -v -alias gssha2root_r3 -keystore ./cacerts -file ./dls/GlobalSign/20140916_GlobalsignSHA256root_cert.cer
    

  • 将新的代码签名证书安装到同一个别名。

    ~ $ keytool -importcert -v -trustcacerts -alias myApp2 -keystore ~/.keystore.jks -file ./dls/Globalsign/OS201400000001.cer
    

  • 似乎按预期工作。我现在用新证书签署我的Java小程序。并且,罐子正在验证新证书。

    HTH。