我有两个 vpn 主机,vpn1 是主主机,vpn2 是热故障转移机器,用于 vpn1 发生故障的情况(无论是计划内还是计划外)。
目前,我们使用 openvpn 提供的 easy-rsa shell 脚本包来管理客户端密钥,但我的前任实施的流程是在 vpn1 上运行构建密钥脚本,然后使用相同的答案在 vpn2 上再次运行它,但只将 vpn1 中的密钥/crt 提供给客户端。
在我看来,这在两个层面上都是错误的:第一,我认为这根本行不通;通过这种方式,来自 vpn1 的密钥不太可能用于对 vpn2 进行身份验证;第二,这需要做很多额外的工作。
我希望在两台机器之间同步密钥存储。这可能吗?如果可以,我需要确保两台机器之间同步什么?
答案1
使用我的 openvpn 配置,当最终用户出示证书时,服务器会问自己的问题是:该证书是否由正确的 CA 签名?
如果两台服务器都安装了相同的 CA 根证书,则无需同步密钥库,因为您根本不需要两个密钥库。您需要一个密钥库,它不必位于任何一个两个 openvpn 盒子(可能不应该)。从该密钥库中,您可以使 CA 根对两个 openvpn 服务器都可用,并告诉它们它在哪里:
ca /etc/openvpn/keys/ca.crt
然后,您将使用此 CA 签名的客户端证书以及客户端的相应密钥提供给客户端。您还可以制作服务器的证书/密钥文件对,并将其放在一个或两个服务器上(或者,如果您愿意,可以为每个服务器生成一对;如果客户端设置为验证服务器,并且拥有 CA 证书的副本,则两者都可以)。服务器可以验证客户端证书,因为它拥有 CA 证书的副本。服务器不需要查看密钥库,客户端也不需要。