You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Windows CA签发OpenVPN服务端/客户端证书的模板选择疑问

解决OpenVPN证书无效问题:选对Windows CA模板就搞定

嘿,你这个问题我之前碰过好多次——完全是证书模板选错了锅!Web Server模板是专门给网站服务器设计的,它的加密用法、身份验证逻辑和OpenVPN需要的完全不搭,难怪客户端会报无效。下面给你说清楚该用啥模板,以及怎么确保保留CSR里的CN字段:

1. 服务端证书:优先用「Computer」模板(或改个自定义版)

Windows CA自带的「Computer」模板天生适配服务端身份验证需求:

  • 密钥用法包含数字签名、密钥加密,刚好满足OpenVPN的加密和签名要求
  • 增强密钥用法(EKU)同时有「服务器认证」和「客户端认证」,完美适配OpenVPN的TLS握手流程

但默认的Computer模板会自动用计算机名替换CSR里的CN,如果你要保留自己填的CN,得改个模板副本:

  • 打开CA控制台,找到「Computer」模板右键选「复制模板」
  • 切到「请求处理」标签,勾选**「允许用户输入模板中未提供的信息」**
  • 再切到「主体名称」标签,选**「提供在请求中」**——这样CA就会乖乖用你CSR里的CN,不会乱替换
  • 保存新模板,在CA里启用它,再用这个模板签服务端的CSR就行

2. 客户端证书:用「User」模板(同样可以改副本保留CN)

OpenVPN客户端证书最核心的要求是要有「客户端认证」的EKU,而Web Server模板根本没这个!「User」模板刚好满足:

  • 密钥用法包含数字签名、密钥加密,适配客户端的加密需求
  • 增强密钥用法明确包含「客户端认证」,这是OpenVPN识别客户端证书有效性的关键

要保留CSR里的CN的话,同样复制「User」模板做修改:

  • 在「主体名称」标签选「提供在请求中」
  • 确保「请求处理」标签允许自定义信息
  • 启用修改后的模板签发客户端CSR

3. 签完证书别忘了检查这两点

签发完后双击证书文件,在「详细信息」标签确认:

  • 服务端证书的「增强密钥用法」里要有「服务器认证」,客户端证书要有「客户端认证」
  • 「主题」字段里的CN和你当初在CSR里填的完全一致

这样弄出来的证书,OpenVPN绝对能认,不会再弹无效提示了。

内容的提问来源于stack exchange,提问作者Tobia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:02:51