国外免费梯子账号登录
国外免费梯子
节点与线路

OpenVPN证书吊销列表配置前必备前提条件详解

OpenVPN证书吊销列表配置前必备前提条件详解 | ProtonVPN

很多用户在配置OpenVPN证书吊销列表的时候,往往直接照搬网上的教程往配置文件里加crl-verify参数,结果要么服务启动失败,要么所有合法客户端都被拒绝接入,排查很久都找不到原因。实际上绝大多数这类故障都不是CRL文件本身生成出错,而是没有满足OpenVPN证书吊销列表配置前提的相关要求,本文就逐项拆解所有必须提前完成的检查项,帮用户避开配置阶段的常见坑。

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

运维工程师正在校验根CA证书权限一致性,确认CRL配置的前置要求

根CA与签发体系的权限一致性校验

很多人配置CRL第一步就错,用了和签发客户端证书不同的CA生成的吊销列表,结果OpenVPN服务端直接拒绝所有合法连接,连正常在用的授权客户端都没法接入VPN。

检查的时候首先要确认当前OpenVPN服务端加载的ca.crt对应的私钥,就是当初签发所有客户端、服务端证书的根CA私钥,不能是中途替换过的其他CA文件,也不能是二级子CA的私钥生成的CRL,否则证书链校验逻辑完全不匹配。

预期的校验结果是用openssl verify命令验证现有客户端证书,输出提示OK,没有证书链不匹配的报错,要是提示unable to get local issuer certificate,说明CA文件已经被替换,必须先恢复原始签发CA的完整文件才能继续配置CRL。

CRL文件的读写权限与存储路径合规检查

很多管理员把CRL文件放在系统根目录或者其他非OpenVPN服务进程有权限访问的路径,导致服务启动的时候读取CRL失败,直接进入拒绝所有连接的保护模式,这种故障排查起来很容易误以为是证书本身出了问题。

首先要确认CRL的存储路径没有设置系统级的强制访问控制限制,比如SELinux的上下文没有设置为VPN服务禁止访问的类别,同时CRL文件的所属用户组要和OpenVPN服务运行的身份一致,不能是root单独所有,否则普通权限运行的OpenVPN进程根本读不到文件内容。

这里的常见误区是很多人图方便把CRL放在桌面或者临时目录,系统重启之后临时目录清空,直接导致OpenVPN服务异常退出,所以必须把CRL存放在OpenVPN配置目录下的专属子文件夹里,和ca.crt、server.crt等核心证书文件放在同一层级。

OpenVPN服务端版本的CRL特性兼容校验

部分老旧的OpenVPN版本对CRL的格式支持有缺陷,比如部分早期发行的版本不支持带自定义扩展字段的CRL文件,VPN加速器直接加载会出现配置解析报错,服务完全无法启动。

检查的时候先运行openvpn --version查看当前运行的服务端版本,确认版本支持crl-verify配置指令的全部参数,部分精简编译的OpenVPN发行版甚至直接移除了CRL校验模块,这种情况必须替换完整编译的官方版本才能继续配置。

预期的校验结果是在配置文件里临时写入一行空的crl-verify指令,国外免费梯子执行配置预检查命令没有出现未知指令的报错,就说明当前版本支持CRL相关配置,不需要额外打补丁或者升级。

证书吊销逻辑的边界规则预确认

很多管理员没提前明确CRL的生效范围,配置之后出现误吊销合法证书的问题,比如把服务端自身的证书也加入了CRL列表,导致整个VPN服务直接无法启动,所有客户端都连不上。

配置CRL之前必须先梳理当前所有在用的证书清单,把服务端证书、根CA证书本身排除在可吊销范围之外,仅把需要作废的客户端证书序列号整理出来,生成CRL的时候不要把上述两类证书的序列号写入。

另外还要提前确认CRL的更新周期,避免CRL过期之后OpenVPN服务自动拒绝所有连接,要在CRL到期之前提前生成新的吊销列表替换旧文件,不需要重启OpenVPN服务就能自动加载更新后的内容。

所有这些前置条件全部检查通过之后,再写入crl-verify对应的配置行重启服务,就能避免绝大多数CRL配置引发的VPN连接故障,不需要后续反复排查莫名其妙的连接拒绝问题。

远程办公编辑组 | ProtonVPN
围绕办公网络、视频会议和远程访问,说明连接准备与常见排查步骤。
查看更多文章
连接指南

从一个连接问题开始

遇到网关可以访问但互联网不通相关问题,可从“确认上游状态和正常接入条件”开始阅读。本地网关响应不代表外网已经连通,需要结合具体环境判断。