续订 SSL 客户端证书

续订 SSL 客户端证书

对于内部使用的基于网络的软件(必须在任何地方均可用),我创建了客户端证书,并安装在授权消费者的浏览器中。

现在,2012 年已经过去,它们都已过期,需要续订。我已经发出了 PKCS #12 证书 (.p12)

这是我的问题

  • 是否可以延长客户端证书的有效期?
  • 我是否必须在所有客户端上重新安装证书,或者是否有其他方法(例如从服务器集中安装,也许采用某种更新机制)?

  • 如何在 Linux 上使用 openssl 更新/重新生成客户端证书?


因为这可能很有趣,下面是我创建浏览器证书的方法

# client private key
openssl genrsa -des3 -out client.key 1024

# generate certificate signing request
openssl req -new -key client.key -out client.csr

# create certificate, sign with server key
openssl x509 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt

# export into pkcs12
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12

答案1

是否可以延长客户端证书的有效期?

不,这是不可能的。
客户端证书有一定的有效期,无法更改。唯一的可能是创建一个具有新有效期的新证书。

我是否必须在所有客户端上重新安装证书,或者还有其他方法吗

您无法从服务器访问客户端浏览器中的证书。您可以做的是开发一个网页(使用客户端证书进行身份验证),允许用户创建新证书并将其导入到浏览器中。
在此网页的服务器端,您可以使用去年使用的相同证书请求(安全性稍差)创建新证书,也可以使用数据库中有关用户的信息创建新证书请求。您可以按照您在帖子中描述的方式使用 openssl 执行此操作。

如何在 Linux 上使用 openssl 更新/重新生成客户端证书

正如我在上一个问题中所写,您需要创建一个新证书。您可以使用去年使用的证书请求来执行此操作,也可以创建一个新的证书(更安全但也更复杂)。然后,您需要使用服务器密钥对该请求进行签名并将其导出到 pkcs12。

我会坚持使用您当前的有效期(1 年),即使续订证书有些麻烦。因为证书有效期越长,变化就越大,即某些授权用户变为未授权用户,但仍然拥有有效证书。

相关内容