Openvpn 在旧设置上设置新的 CA.cert、服务器密钥

Openvpn 在旧设置上设置新的 CA.cert、服务器密钥

我错误地删除了包含 ca.cert、server.key 和 dh2048.perm 的密钥文件夹。我有多个位于不同地方的客户端,它们仍在与服务器连接。

我想生成一组新的 ca.cert、server.key 和 dh2048.perm 以及客户端密钥,但不影响那些已经连接到服务器的客户端。有什么可行的解决方案吗?

我可以继续使用 build-server-key、build-ca 和 build-dh 来为将在同一台服务器上部署的新客户端提供服务吗?还是我需要进行完全不同的设置?我不确定还有多少旧客户端在连接!

提前致谢!

答案1

您是否重启过 OpenVPN 服务器?如果没有,那么客户端为何能够连接:服务器在启动时读取了您删除的文件,因此能够验证客户端提供的证书(服务器只需拥有 CA 证书的内容即可验证它们)。

关于可行的解决方案……

嗯,一种方法是创建其他OpenVPN 实例监听单独的端口(例如,在 Debian 及其衍生产品上,这可以立即使用 — 通过创建另一个配置文件并配置不同的端口)。您应该为该实例创建完全不同的 CA 设置(PKI)。

然后,您可以为使用该新 CA 的所有现有客户端重新滚动密钥+证书对,并在现有客户端上部署它们(在其配置文件中进行必要的调整以适应不同的服务器端口),从而有效地将它们切换到新服务器。

更新后,您可以重新配置原始 OpenVPN 实例以使用新的 CA 设置 - 基本上只是使其配置与第二个实例相同,模数原始端口。

完成切换后,您将得到两个完全相同的 OpenVPN 实例,它们之间仅在监听的端口上有所不同。因此,您可以再次迭代客户端 — 这次将配置的端口改回原始实例。

该序列完成后,所有客户端都将得到更新。

总结

  1. 创建一个新的 PKI。
  2. 使用该 PKI 设置单独的 OpenVPN 实例。
  3. 为现有客户端重新推出新的 key+cert+CA 证书包。
  4. 使用这些捆绑包更新现有客户端,并将它们逐一重新定位到新的 OpenVPN 实例。
  5. 重新配置原始实例以使用新的 PKI。
  6. 更新现有客户端以再次定位原始实例。

相关内容