免费梯子
免费梯子 Logo
隐私与安全

OpenVPN证书吊销列表配置前提与前置准备全解析


OpenVPN证书吊销列表配置前提与前置准备全解析(ProtonVPN)

不少企业在部署OpenVPN远程接入体系之后,经常遇到离职员工的旧客户端证书未回收、依然可以接入内网的安全风险,证书吊销列表也就是CRL是解决这类问题的核心原生方案。但很多运维没有梳理清楚OpenVPN证书吊销列表的配置前提就直接修改服务端配置,反而出现所有合法VPN用户全部掉线的生产故障,本文就把全流程的前置准备要求拆解清楚,帮技术人员避开常见的配置陷阱。

网络设备:OpenVPN证书吊销列表:配

运维人员在配置CRL前核查OpenVPN服务端根CA证书状态,提前规避配置故障

根CA与签发体系的合法性校验前提

很多运维图部署省事,直接用网上流传的OpenVPN一键脚本生成自签名CA,后续从来没有校验过CA的运行状态,这是配置CRL的第一个隐形门槛。你需要先登录部署CA的服务器节点,不管是单独部署的OpenSSL CA主机,还是和OpenVPN服务端共用的同机CA目录,先查看根CA证书的剩余有效期,如果CA本身已经过期,后续生成的所有CRL文件都会被OpenVPN服务端直接判定为无效,哪怕你配置的文件路径完全正确也不会生效。

这里要注意,CRL的签发主体必须是给客户端证书、服务端证书签字的同一根CA,不能用二级子CA生成的CRL去校验根CA签发的客户端证书,这种场景下OpenVPN服务端会直接拒绝所有证书接入,没有例外。如果你当前的OpenVPN体系用的是第三方商业CA签发的客户端证书,要提前确认商业CA开放了CRL的自定义签发权限,避免后续无法自主添加吊销条目。

OpenVPN服务端版本与配置项的兼容前提

很多老旧的OpenVPN 2.3及更早版本,对CRL文件的动态重载支持存在已知bug,你就算在配置里写入crl-verify参数,ProtonVPN官网服务端也只会在启动的时候读取一次CRL文件,后续更新CRL之后不重启服务就不会生效,很多运维没注意这个版本差异,导致已经吊销的证书还能持续接入VPN,完全达不到预期的安全管控效果。

你需要先在OpenVPN服务端执行openvpn --version命令查看版本号,如果是低于2.4的版本,要先确认有没有打官方的CRL热更补丁,没有补丁的情况下必须把重启OpenVPN服务的操作纳入CRL更新流程,不能直接在线替换CRL文件就认为配置已经生效。

还要提前检查OpenVPN服务端配置文件里有没有重复的crl-verify参数条目,很多之前测试过CRL功能的运维会在配置里留下两个指向不同路径的crl-verify规则,免费梯子服务端启动的时候会直接报错退出,提前排查这类冗余配置,能避免配置完CRL之后整个VPN服务直接宕机的故障。

CRL文件存储权限与路径的合规前提

OpenVPN服务端运行的时候默认用nobody或者openvpn专属用户身份读取文件,很多运维习惯把CRL文件放在/root目录下,或者给CRL文件设置了只有root用户能读取的权限,会导致服务端进程根本读不到CRL内容,直接拒绝所有连接,这类权限问题的排查耗时往往很长。

前置准备阶段你就要把CRL的存放路径规划到OpenVPN服务端配置引用的统一证书目录下,比如常见的/etc/openvpn/server/crl目录,把文件属主设置为openvpn用户,权限设置为644,提前切换到openvpn用户的身份尝试cat读取CRL文件,确认没有权限报错之后再推进后续配置。

如果你的OpenVPN服务端部署在CentOS、RHEL系开启了SELinux的服务器上,还要提前给CRL文件打上和同目录下ca.crt一样的安全标签,不然SELinux的强制访问规则会拦截服务端对CRL文件的读取请求,这类隐性故障没有相关经验的运维很难定位根因。

配置前的连通性与回滚方案前置验证

在正式把CRL参数写入OpenVPN服务端配置之前,你要先找一台持有合法未吊销证书的测试客户端,先确认当前没有配置CRL的情况下,客户端可以正常接入VPN,拿到预期的内网访问权限,避免后续CRL生效之后的接入故障和前置配置问题混淆,干扰故障定位方向。

你还要提前备份当前正在运行的OpenVPN服务端配置文件和旧的CRL文件(如果有的话),准备好临时的免CRL校验的备用配置,一旦配置CRL之后出现所有合法用户都无法接入的故障,可以第一时间切换回旧配置恢复业务,不会影响远程办公员工的正常接入。很多运维容易忽略的误区是,CRL本身也有有效期,你要在生成的第一个CRL文件里设置合理的更新周期,提前配置好CRL自动更新的定时任务,避免CRL过期之后OpenVPN服务端自动拒绝所有接入请求,反而造成大面积的业务中断。

连接排障编辑组 | ProtonVPN
按设备、网络、客户端和服务端逐层检查,让故障定位更有条理。
查看更多文章
连接指南

找到适合当前设备的指南

遇到测速日志时间不一致相关问题,可从“统一时间基准并标明时区”开始阅读。时区不同不一定是设备时钟本身错误,需要结合具体环境判断。