在java信任库中更新和续订自签名CA证书

在java信任库中更新和续订自签名CA证书,java,keystore,truststore,certificate-authority,Java,Keystore,Truststore,Certificate Authority,我构建了一个Java应用程序,向外部授权客户端公开web服务。Web服务使用WS-security和证书身份验证。基本上,我们充当自定义证书颁发机构——我们在服务器上维护一个java信任库,并在其中签名和添加客户端的证书。目前,我们有手动注册过程,要求WS-Client上载其证书签名请求。我们对CSR进行签名,从命令行使用keytool将证书添加到java信任库中,并将签名证书连同CA证书一起返回给客户端。反过来,客户机使用其私钥对其soap消息负载进行签名,并在消息中嵌入签名证书。服务器端对数

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

虽然没有什么痛苦(因为体力劳动),但该设置工作正常。现在,我意识到我们的根CA证书即将到期,因此我希望设置维护策略。我应该如何更新自签名根CA证书?看起来我必须创建新的并替换原来的。这将影响所有必须接收新证书和导入新CA证书的客户端。这是正确的理解还是有更好的方法来处理这种情况

如果重要的话,我已经使用openssl生成了原始密钥对

openssl req -x509 -newkey rsa:1024 -keyout cakey.pem -out cacert.pem -config openssl.cnf
在根CA上保留相同的私钥允许所有证书继续针对新根CA成功验证;你所需要做的就是信任新的根


问得好!!我也会做同样的事情,创建一个新的,但这次的天数更多。您可以在openssl.cnf文件中配置它。这次我肯定会确保更长的过期时间。谢谢