OpenVPN 将服务器证书/密钥复制到不同的服务器上

OpenVPN 将服务器证书/密钥复制到不同的服务器上

假设Server 1我设置了所有OpenVPN服务器凭据、证书颁发机构等......

Server 1所有这些文件都是使用以下命令生成的:

./easyrsa build-ca //create ca
./easyrsa gen-dh //create diffie-hellman key
./easyrsa gen-req server nopass //create server key pair
./easyrsa sign-req server server //sign server key pair
openvpn --genkey --secret pfs.key //create perfect forward secrecy key file

Server 1 OpenVPN服务器配置文件如下所示:

port 1194
proto udp
dev tun
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/server.crt
key /etc/openvpn/server/server.key
dh /etc/openvpn/server/dh.pem
cipher AES-256-CBC
auth SHA512
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 1.0.0.1"
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 3
tls-server
tls-auth /etc/openvpn/server/pfs.key

然后,如果我想创建一个客户端密钥对,以便客户端可以连接到服务器,OpenVPNServer 1将运行以下命令Server 1

./easyrsa gen-req client nopass //create client key pair
./easyrsa sign-req client client //sign client key pair

现在一切正常,如果我向客户端提供我生成并签名的客户端密钥对,Server 1他们就可以完美地连接到OpenVPN服务器Server 1

但是假设我想创建一个新的OpenVPN服务器(在 上Server 2),并且我希望客户端仍然能够使用相同的客户端密钥对(我在 上生成/签名的Server 1)连接到OpenVPN托管在 上的服务器Server 2

我能够通过简单地复制/传输服务器凭据、证书颁发机构等来使其工作...我将我在 上生成的文件复制到,(Server 1Server 2将我在 上生成的ca.crt、、、、文件传输到 ,以便允许我在 上生成的相同客户端密钥对连接到),所以基本上服务器配置文件使用我在 上生成的相同服务器凭据、证书颁发机构等...。server.crtserver.keydh.pempfs.keyServer 1Server 2Server 2Server 1Server 2Server 2 OpenVPNServer 1

因此,尽管这似乎可以正常工作,但我只是想确保这是实现目标的正确方法?这种方法安全吗?有没有更简单/更快捷的方法来做到这一点?

答案1

Easy-RSA 是一种生成证书、密钥等的(简单)方法,这些证书、密钥等对于运行 OpenVPN 以及 Apache/nginx 等服务是必需的。您在哪里运行实际程序并不重要,因为这些文件不依赖于您在哪台计算机上生成它们。

您已确定使用这些文件最简单、最快捷的方法,即简单地复制它们。此外,用户 Lenniey 建议将 easy-rsa 根文件夹复制到第二个 OpenVPN 服务器,这是一个好主意。

相关内容