2012-11-06 27 views
9

我已经构建了一个将Web服务公开给外部授权客户端的Java应用程序。 Web服务使用带有证书认证的WS-security。基本上我们充当自定义证书颁发机构 - 我们在我们的服务器上维护一个java truststore并签名并向其添加客户端证书。目前我们有手动注册过程,要求WS客户端上传他们的证书签名请求。我们签署CSR,使用命令行中的keytool将证书添加到我们的java truststore中,并将签名证书和我们的CA证书返回给客户端。反过来,客户端使用他们的私钥签署他们的肥皂消息有效载荷并在消息中嵌入签名证书。服务器端解密数字签名并验证嵌入式证书是否已签名,并且在满足客户端请求之前匹配我们的信任库。正在更新 - 续订java信任库中的自签名CA证书

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

如果重要,我已经使用openssl来生成原始密钥对。

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

问得好!我最终会做同样的事情,创造一个新的,但这次有更多的天数。你可以在openssl.cnf文件中配置它。 – Arham

+0

肯定这次我会确保更长的到期期限。谢谢。 – jay

回答

2

保持你的根CA相同的私钥允许所有证书,继续针对新根成功验证;所有你需要的就是相信新的根。

More info

+0

真棒!感谢您指出这些信息! – jay

相关问题