Openvpn:从现有证书颁发机构生成客户端证书

Nic*_*ert 3 certificate openvpn certificate-authority

我的公司使用 OpenVPN 将我们的客户端连接到我们的中央服务器,以便于管理。我们的防火墙软件(以及他们的)内置了对 OpenVPN 的支持,并包含一个证书生成器。最近,该发电机停止工作,我们不知道为什么。但无论如何,过去很难,所以我们想尝试一种新的方法。

我们只想使用 OpenVPN 在本地计算机上生成客户端证书,而不是在防火墙软件上生成,因为它似乎有问题。我们有一个现有的证书颁发机构,并且我有完整的纯文本可读证书。这显然包括所有发行者信息、模数、签名和证书本身。

我的问题是,我可以在基于 Debian 的 Linux 发行版上使用 OpenVPN 从现有证书颁发机构生成客户端证书吗?我可以重新生成并签署一个新的 CA,但我不想这样做,因为我们有相当多的客户端,更新他们的 VPN 客户端证书会很麻烦。

我尝试过使用 OpenVPN 生成 CA 并使用我需要的证书更改证书数据,但 OpenVPN 生成的格式似乎与我的格式有点不同。

CA 和客户端都是 PKCS12。这可能吗?或者我必须重新制作一切?

Gea*_*Lin 5

当然可以,为什么不呢?

  • 将 CA 转换为 PEM:
openssl pkcs12 -in ca.pfx -out ca.crt -clcerts -nokeys
openssl pkcs12 -in ca.pfx -out ca.key -nocerts -nodes
  • 生成 4096 位 RSA 密钥及其 CSR(证书签名请求):
openssl genrsa -out client.key 4096
openssl req -sha256 -out client.csr -key client.key -new
  • 使用 CA 密钥签名:
openssl x509 -sha256 -req -days 365 -CA ca.crt -CAkey ca.key \
    -in client.csr -set_serial 01 -out client.crt
  • 将客户端密钥/证书转换为 PKCS12:
openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx