我为我的组织build立了一个OpenVPN服务器,并且正在阅读客户端密钥工作的不同方式。 我对这些客户端密钥和帐户authentication背后的所有概念还是有点陌生。
回应你的每一点:
1 – 将OpenVPN密码的密码保护types化与SSH密码的密码保护是正确的。
2 – 不使用任何额外的身份validation方法OpenVPN仅依靠服务器validation客户端证书(理想情况下由客户端validation服务器证书)来validation客户端。 这使得撤销单个客户端的访问权限,将客户端证书添加到证书撤销列表(CRL)(由版本1.5或更高版本的OpenVPN支持)或从客户端删除密钥材料(或者在您的所有证书上切换证书其他客户)。 如果您没有使用额外的身份validation方法,您需要有一个CRL来允许客户端访问撤销。
请记住,保护密钥的密码完全不能帮助您:附加的身份validation。 该密码只是“解锁”客户端设备上的密钥 – 它不能缓解客户端上的用户对服务器计算机的额外身份validation问题(以及访问撤销问题)。
3 – 您应该在客户端自己生成私钥/公钥对,而不是通过networking传输它们。 您可以在客户端上生成证书请求,将公钥(在证书签名请求中)发送到CA进行签名,并在客户端上安装签名证书。 这可能都是脚本,我敢肯定有人已经做到了(我希望商业许可的OpenVPN产品可能有一些内置的function)。
我发现这个My Certificate Wizard项目就是为了这个目的而编写的,但是我会使用OpenSSL命令行工具在客户端上编写整个脚本,试图让整个过程对用户来说基本不可见。