我正在寻找一种无需重新启动服务并中断现有隧道连接的方法来重新加载新的 IPSEC 证书。
作为活动的一部分,我正在更换证书(包括中间证书颁发机构 (CA))和密钥。
我尝试使用ipsec rereadall
,但似乎它只重读/etc/ipsec.secrets
,/etc/ipsec.d/cacerts, ocspcerts, acerts and crls
而不是/etc/ipsec.d/certs/
,所以它不起作用。
sysemctl restart IKEV2
当然不是一个选择,因为它会破坏正在运行的隧道连接。
有没有什么办法可以做到这一点而不影响用户?
编辑:我正在使用 IKEV2 strongSwan
答案1
使用已弃用的ipsec.conf/starter/stroke 配置后端,strongSwan 仅会在部分 ( )ipsec.d/certs
中引用证书时才从目录中读取证书。在这种情况下,您必须重新加载连接才能加载新的最终实体证书。由于不建议使用(它会在再次加载之前删除所有现有配置,这会导致现有连接的重新密钥失败),您必须实际重命名新证书并相应地更改 ipsec.conf,以便可以接受更改并仅替换受影响的配置。请注意,这仍然会影响这些配置的活动连接,因此如果您更改所有连接使用的证书,您也可以只使用或甚至所有连接都会受到影响。conn
left|rightcert
ipsec reload
ipsec update
ipsec reload
ipsec restart
为了避免这种情况,我建议你改用swanctl.conf/维奇如果可以的话,请配置后端。它允许您通过swanctl/x509
目录和swanctl --load-creds
命令(重新)加载独立于连接的证书(可以通过身份从配置中引用它们)。即使您在配置中明确引用证书(例如通过目录外的绝对路径swanctl
),通过重新加载这些证书swanctl --load-conns
也会更好,因为您不必重命名文件,因此可以检测到更新的证书并且不会破坏现有连接。