大象加速器
大象加速器 Logo
连接指南

OpenVPN服务端证书配置必知的前提条件详解

不少刚接触OpenVPN部署的运维人员,常会跳过证书配置前的前置检查步骤,直接跟着网上的一键脚本生成证书,后续要么出现服务启动报错,要么客户端连接时反复提示证书不可信,排查故障要耗费数倍的时间。本文就围绕OpenVPN服务端证书配置前提,拆解所有必须提前确认的核心条件,覆盖系统权限、证书体系规划、网络适配等多个维度,帮大家避开绝大多数隐性的配置坑。

基础系统环境的权限与依赖前提

很多新手上来就直接调用证书生成命令,结果发现生成的私钥权限异常,后续OpenVPN服务启动直接报错,配置OpenVPN服务端证书之前,首先要确认部署OpenVPN的服务器(常用的CentOS、Ubuntu等主流发行版)当前操作账号,要么是root账号,要么已经被赋予了/etc/openvpn全目录的读写权限,不能用系统默认的游客级账号直接操作证书生成流程。

接下来要提前确认系统已经完整安装openssl和easy-rsa组件,不能只装完OpenVPN主程序就开始配置证书,很多云服务商提供的精简版服务器镜像,默认没有预装easy-rsa工具包,后续生成CA根证书的时候会直接提示命令不存在,中途补装组件很容易打乱之前的目录规划。

还要提前检查服务器的系统时间已经完成网络同步,证书本身自带固定的生效时间和过期时间属性,如果服务器本地时间和标准时间偏差过大,哪怕是刚生成的全新证书,客户端连接的时候也会直接判定证书不在有效周期内,这类故障的表现和证书损坏非常相似,排查的时候很容易被忽略。

CA根证书体系的规划前提

不少用户图省事直接用网上流传的公开一键脚本生成整套证书,完全没有提前规划CA根证书的存储位置和权限边界,这是非常大的安全隐患,配置OpenVPN服务端证书之前,必须先确定独立的CA根证书存储目录,不能把根证书直接放在OpenVPN服务端的运行目录里,后续如果VPN服务端被入侵,根证书泄露会导致所有已签发的客户端证书全部失效,需要重新整批签发。

还要提前明确根证书、服务端证书、客户端证书的不同标识字段规则,不能把服务端证书的Common Name字段和后续任意客户端的证书命名设置成重复值,不然OpenVPN服务端启动的时候会出现证书冲突报错,无法正常监听服务端口。

还要提前确认根证书的加密算法选型,现在主流的桌面和移动操作系统的信任库,已经默认拒绝识别SHA1这类低安全等级摘要算法签发的证书,配置OpenVPN服务端证书之前,要先在easy-rsa的参数配置文件里把默认摘要算法设置为SHA256,避免生成的证书不被客户端系统识别。

网络与访问场景的匹配前提

配置OpenVPN服务端证书之前,要先明确当前VPN的实际使用场景,如果是仅用于企业内网资源访问的场景,证书不需要额外配置公网域名的SAN字段,如果是需要通过公网域名对外提供接入服务的场景,要提前在证书的扩展字段里把对应的域名、服务器公网IP都加到主题备用名称列表里,不然新版本的OpenVPN客户端会自动校验证书域名匹配度,直接判定不符合规则的证书不可信。

还要提前确认服务器的防火墙规则没有提前封禁OpenVPN计划使用的服务端口,很多人整套证书都配置完成了才发现1194端口被系统默认防火墙拦截,回头排查半天误以为是证书本身的问题,白白浪费大量时间,配置证书之前可以先临时放开对应UDP或者TCP端口的通行规则,后续证书验证完成之后再做精细化的访问控制。

前置校验的验证方法与常见误区

所有前提条件确认完成之后,不要直接启动OpenVPN服务加载新生成的证书,先使用openssl自带的查看命令,分别核验生成的服务端证书的有效期、公钥信息、签发者信息,确认所有字段和之前的规划完全一致,没有出现字段错位的问题。

很多新手的常见误区是把服务端证书直接当成CA根证书导入客户端设备,导致客户端始终提示证书签发者不被信任,配置之前就要明确区分三类证书的使用场景:OpenVPN服务端自己加载的是服务端证书和对应的私钥文件,客户端设备只需要导入CA根证书的公钥文件,二者不能混用。

最后还要提前确认OpenVPN服务端配置文件里填写的证书路径参数,和实际存放的证书文件路径完全对应,不能出现配置文件里写的是绝对路径,实际证书存放在其他自定义目录的情况,这类小错误会直接导致服务启动失败,很多人排查的时候只会反复重新生成证书,完全没注意路径配置的低级问题。

Wi-Fi 与路由器编辑组
Wi-Fi 与路由器编辑组
内容编辑

检查无线信号、设备摆放与有线连接,逐步定位家庭网络瓶颈。

查看更多文章
连接指南

找到适合当前设备的指南

遇到宿舍共享网络中的VPN相关问题,可从“先完成正常接入认证,再比较低峰与高峰的业务表现”开始阅读。不要绕过宿舍网络的设备或访问管理规则,需要结合具体环境判断。