10

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

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

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

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

1 回答 1

2

在根 CA 上保持相同的私钥允许所有证书继续针对新根成功验证;您所要做的就是信任新的根。

更多信息

于 2012-11-07T08:04:50.547 回答