使用现有证书配置 OpenVPN

使用现有证书配置 OpenVPN

我想使用可用的证书配置 OpenVPN,而不使用 easy-rsa。

我使用 openssl 生成 private.key 和 csr.csr。然后我使用开源 CA EJBCA 对 csr 进行身份验证并创建 ca.p12 形式的数字证书。

如何使用上述证书配置 openvpn?我尝试在 /etc/openvpn/server.conf 中进行配置。我已将我拥有的证书放在此处,但仍然无法配置 openvpn。

我使用了 Centos 7.9、EJBCA 和 Openssl

答案1

没问题。OpenVPN 并不关心其证书来自哪里。我们曾经使用过 Microsoft 的 AD 证书服务来颁发证书。它的效果与 EasyRSA 或其他任何证书一样好。

要求如下:

  • 有一个 CA 负责签署客户端证书,它必须在服务器的ca选项(或<ca>...</ca>块)中进行配置。
  • 有一个 CA 负责签署服务器证书,它必须在客户端的ca选项(或<ca>...</ca>块)中进行配置。

这些可能是同一个 CA(通常你会这样做),但这不是必需的。服务器或客户端证书本身都不能自签名。CA 最好是自签名的,例如不是其他 CA 的下属,反过来它不应该签署任何下属 CA;这会带来问题(例如,OpenVPN 将信任全部给定 CA 的后代证书(这可能不是您想要的)。

PKCS#12 包不仅仅是“证书形式”;它是一个容器,可能已加密,包含证书链和私钥。因此,请保证这些文件的安全!

您可以在配置文件中使用带有pkcs12选项或块(文件内容编码为 BASE64)的 PKCS#12 捆绑包。这<pkcs12>...</pkcs12>取代所有其他三个与加密相关的选项cacertkey)。我试过了,它也有效。这在 中有介绍man openvpn

或者您可以从捆绑包中提取证书和密钥openssl pkcs12 -in INFILE.p12 -out OUTFILE.crt -nodes并直接使用它们。

相关内容