例如,https://wiki.archlinux.org/index.php/Easy-RSA告诉我我把所有与服务器相关的文件放入“服务器”,所有与客户端相关的文件放入“客户端”目录。我生成了所有文件并将它们移动到“服务器”和“客户端”中。然后我想生成第二个客户端,但出现了异常。
$ sudo easyrsa build-client-full client2
例外:
Easy-RSA error:
Missing expected CA file: ca.crt (perhaps you need to run build-ca?)
Run without commands for usage and command help.
easyrsa 不允许我指定 CA 文件的位置。也许它并不期望在“服务器”目录中找到 ca.crt/key。
以下是我在“服务器”中拥有的内容:
$ ls -al /etc/openvpn/server/
ca.crt
dh.pem
openvpn-status.log
openvpn.log
server.conf
server1.crt
server1.key
ta.key
我应该将所有服务器证书和密钥放在哪里以及客户端密钥和证书放在哪里?
答案1
我认为这里的误解是,所有这些都只是你设置的一件事,而实际上涉及几个概念上独立的角色。
(你“遵循”的指南建议在不同的机器上运行这些角色。)
证书颁发机构 (无论是通过 Easy-RSA 还是更复杂的方式实现) 发挥着重要作用。它需要自己的密钥和所有证书才能运行。
OpenVPN 服务器的作用是,它需要自己的密钥+证书以及 CA 证书。
OpenVPN 客户端的作用就在于此。它们需要自己的密钥+证书以及 CA 证书。
不管你如何操作,有些文件都会被复制(特别是 CA 证书可能会在很多台机器上,而不仅仅是你提到的两份)。
如果你想让 CA 和 VPN 服务器在同一台机器上,那么很有可能你可以通过使用相同的文件而不是复制一些证书文件来节省一点空间,但这实际上似乎不值得,而且从 CA 中删除文件不是一个选择。