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

我错误地删除了ca.cert,server.key和dh2048.perm的密钥文件夹。 我有多个客户端位于仍然连接着服务器的各个地方。

我想生成新的一套ca.cert,server.key和dh2048.perm和客户端密钥,而不会影响已经连接到服务器的客户端。 什么可能是可行的解决scheme?

是否可以继续使用build-server-key,build-ca和build-dh来为新的客户端部署相同的服务器,还是需要完全不同的设置? 我不知道多less年龄的客户仍然连接!

提前致谢!

你重新启动你的OpenVPN服务器? 如果你不这样做,可以解释为什么客户端可以连接:服务器已经读取你在启动时删除的文件,所以它能够validation客户端提供的证书(服务器只需要有CA证书来validation它们)。

关于可行的解决scheme…

那么,一种方法是创build另一个在单独的端口上监听的OpenVPN实例(例如,在Debian及其衍生工具上,这可以通过创build另一个configuration文件来configuration不同的端口)。 您应该创build一个完全不同的CA设置(PKI)。

然后,您可以使用新的CA重新推出所有现有客户端的密钥+证书对,并在现有客户端上对其进行必要的调整(在其configuration文件中对其他服务器端口进行必要的调整),从而有效切换到新的服务器。

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

切换之后,您将得到两个完全相同的OpenVPN实例,这些实例只在侦听的端口上有所不同。 所以,你可以再次迭代你的客户端 – 这次改变configuration的端口回到目标原始实例。

在这个序列完成之后,你将会更新所有的客户端。

TL; DR

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