2021-08-25

有时,您没有PKI,但您仍然需要一个密钥和相应的证书来签署内容(在TLS上下文之外)。在最初生成的jks文件中的证书过期后,您几乎没有什么选项--要么生成一个全新的键区,要么以某种方式“扩展”现有的证书。这对于测试和内部系统非常有用,但仍然值得一提。

扩展证书通常是不可能的--一旦证书过期,它们就完成了。但是,您可以使用相同的私钥和更长的时间获得新的证书。这听起来像是一件应该很容易做的事情,但它使它变得不那么容易了。即使用我最喜欢的工具,这不可能马上发生。

为了重用私钥以获得新的、更长的证书,您需要执行以下操作:

  1. 导出私钥(或者通过密钥库-资源管理器UI,这要简单得多)
  2. 发出证书签名请求(通过密钥库-资源管理器用户界面)
  3. 使用私钥(即自签名)对请求进行签名。
  4. 导入存储区中的证书以替换旧的(过期的)证书

使用keyTool或KeyStoreExporer,最后两个步骤似乎并不简单。如果您试图使用现有的密钥存储键区对请求进行签名,则当前证书将用作链的根(您不希望这样)。您无法删除证书并生成新证书。

因此,您需要使用OpenSSL:

1

x509 -req -days 3650 -in req.csr -signkey private.key -sha256 -extfile extfile.cnf -out result.crt

Cnf是可选的,如果要指定扩展,可以使用它。例如,对于时间戳,扩展文件如下所示:

1

extendedKeyUsage=critical,timeStamping

之后,“简单”创建一个新的密钥存储库,并导入私钥和新生成的证书。这在密钥库-资源管理器UI中很简单,并

https://www.douban.com/note/810994195/

你注意到我对关键工具浏览器的偏爱。这是一个很好的工具,可以让使用键和密钥存储变得简单和可预测,而不是命令行工具,比如keytools和OpenSSL,我相信没有人能够在不谷歌每个命令的情况下使用这些工具。当然,如果您必须执行非常具体或奇怪的操作,则必须恢复到命令行,但是对于大多数操作来说,UI就足够了(除非您必须自动化它,在这种情况下,显然使用CLI)。

您很少需要做我上面展示的事情,但是如果您必须这样做的话,我希望上面的提示是有用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值