and*_*ice 5 security vpn openvpn rsa ssl-certificate
我正在为我的组织设置 OpenVPN 服务器,并且正在阅读客户端密钥的不同工作方式。我对这些客户端密钥和帐户身份验证背后的所有概念仍然有些陌生。
回应您的每一点:
1 - 您将 OpenVPN 密钥的密码保护与 SSH 密钥的密码保护进行类比是正确的。
2 - 不使用任何额外的身份验证方法 OpenVPN 仅依靠服务器对客户端证书的验证(最好是客户端对服务器证书的验证)来对客户端进行身份验证。这使得撤销单个客户端的访问权只需将客户端的证书添加到证书撤销列表 (CRL)(OpenVPN 1.5 及更高版本支持)或从客户端删除密钥材料(或切换所有客户端上的证书)即可。其他客户)。如果您不使用其他身份验证方法,则需要拥有 CRL 以允许撤销客户端访问。
请记住,保护密钥的密码对您来说根本没有帮助:额外的身份验证。该密码只是“解锁”客户端设备上的密钥——它并不能缓解客户端上的用户向服务器计算机进行额外身份验证的问题(以及访问撤销问题)。
3 - 您应该在客户端本身生成私钥/公钥对,而不是通过线路传输它们。您可以在客户端上生成证书请求,将公钥(在证书签名请求中)发送到您的 CA 进行签名,然后在客户端上安装签名的证书。这一切都可以编写脚本,而且我确信有人已经做到了(我希望商业许可的 OpenVPN 产品可能内置了一些功能)。
我发现这个“我的证书向导”项目就是为此目的而编写的,但我会使用 OpenSSL 命令行工具在客户端上编写整个过程的脚本,以尝试使整个过程对用户来说几乎不可见。