我想使用可用的证书配置 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>
取代所有其他三个与加密相关的选项(ca
,cert
和key
)。我试过了,它也有效。这在 中有介绍man openvpn
。
或者您可以从捆绑包中提取证书和密钥openssl pkcs12 -in INFILE.p12 -out OUTFILE.crt -nodes
并直接使用它们。