在Java信任库中更新/续订自签名CA证书

11

我建立了一个Java应用程序,向外部授权客户端公开Web服务。 Web服务使用带有证书身份验证的WS安全性。基本上,我们充当自定义证书颁发机构-我们在服务器上维护一个Java信任存储,并签署并添加客户端的证书。目前,我们有一个手动注册流程,需要WS客户端上传其证书签名请求。我们签署CSR,使用命令行中的keytool将证书添加到我们的Java信任存储中,并返回已签名的证书以及我们的CA证书给客户端。反过来,客户端使用其私钥对其soap消息负载进行签名,并在消息中嵌入签名证书。服务器端解密数字签名,并在满足客户端请求之前验证嵌入式证书是否被签名并与我们的信任存储匹配。

尽管这个设置有点痛苦(因为需要手动工作),但它正在正常工作。现在我意识到我们的根CA证书即将过期,因此我正在寻找建立维护策略。我该如何更新自签名的根CA证书?看起来我将不得不创建新的并替换原始的。这将影响所有客户端,他们必须接收新证书并导入新的CA证书。这是正确的理解,还是有更好的处理方法?

如果有影响的话,我已经使用openssl生成了原始密钥对。

openssl req -x509 -newkey rsa:1024 -keyout cakey.pem -out cacert.pem -config openssl.cnf

好问题!!我本来也会做同样的事情,创建一个新的证书,但这次时间更长。您可以在openssl.cnf文件中进行配置。 - Arham
这一次我一定会确保更长的过期时间。谢谢。 - jay
1个回答

2
将相同的私钥保留在您的根CA上,可以使所有证书继续成功地针对新根进行验证;您需要做的就是信任新根。更多信息

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接