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

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

如果重要的话,我已经使用openssl生成原始 key 对。

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

最佳答案



More info

10-08 13:35
查看更多