OpenVPN - 我可以使用现有的 SSL 证书吗?

vbe*_*nar 6 ssl openvpn

我想设置 OpenVPN 服务器供我个人使用。我拥有域并且我拥有该域的有效 SSL 证书(由 StartSSL 颁发)。

在 OpenVPN 的设置说明的开头,有一个部分描述了我自己的证书颁发机构的生成,稍后用于颁发自签名证书。

我想知道我是否可以将现有的 SSL 证书用于此目的?我这样做有什么好处吗?

例如,我将此证书用于邮件服务器 SSL,邮件客户端不会抱怨自签名证书。OpenVPN 客户端是否使用众所周知的根证书来检查服务器的证书,或者他们不使用此基础架构并且自签名证书可以正常工作?

Zor*_*che 7

您打算如何进行客户端身份验证?您是否打算进行基于证书的客户端身份验证,或其他什么?

我想知道我是否可以将现有的 SSL 证书用于此目的?我这样做有什么好处吗?

是的,只要您的证书主题值与您的 OpenVPN 服务器的名称相匹配,您可能可以避免重复使用证书。

不过,这几乎肯定是一个坏主意。这样做几乎没有优势。如果您尝试并且不太熟悉 PKI 的工作原理,您可能会使事情变得更加困难和困惑。

在任何情况下,对于您的第一个 VPN 服务器,我强烈建议您在尝试使用外部 CA 或 3rd 方证书做任何花哨的事情之前遵循编写的指南。OpenVPN 非常灵活,但最好坚持使用标准方法启动。

OpenVPN 客户端是否使用众所周知的根证书来检查服务器的证书,或者他们不使用此基础架构并且自签名证书可以正常工作?

通常,在设置 open OpenVPN 客户端时,除了建议的配置之外,您还向客户端提供 CA 证书。


Dav*_*lev 7

虽然这个答案比您原来的问题晚了很多,但您的问题是我在 google 上搜索 OpenVPN StartSSL 时出现的第一个链接,我希望我的经验可以帮助其他尝试做同样事情的人。

经过一些尝试,我已经能够让 OpenVPN 使用免费的 StartSSL 服务器和有效期为一年的客户端证书。

StartSSL 不允许在客户端使用其 Web 服务器 SSL/TLC 证书,因此我生成了多个 S/MIME 和身份验证证书(使用email+[clientname]@[mydomainname])并从浏览器导出它们。

我必须使用 openssl 将 S/MIME 和身份验证证书从 pfx 文件类型转换为密钥和证书。我遵循了本指南

然后我不得不将客户端密钥和各种密钥/证书组合到一个 OVPN 文件中(我也使用了 ta 密钥)。我改编了其他人的脚本以从命令行执行此操作。代码在这里

我最初被证书验证错误难住了,特别是:

VERIFY ERROR: depth=0, error=unable to get local issuer certificate

对我来说,关键是下载ca.pemsub.class1.server.ca.pem然后sub.class1.client.ca.pem从 StartSSL 结合三者:

cat ca.pem sub.class1.server.ca.pem sub.class1.client.ca.pem > ca-COMBINED.pem
Run Code Online (Sandbox Code Playgroud)

我在我的 server.conf 中为 OpenVPN 使用了这个,并且卡住了!