Email:2225994292@qq.com
CNY
通配符证书的CSR生成:Common Name字段该如何填写?
更新时间:2025-12-08 作者:通配符证书

证书签名请求(CSR)作为向证书颁发机构(CA)申请证书的核心文件,其字段填写的准确性直接决定证书能否正常生效 —— 其中Common Name(通用名称)字段更是通配符证书的 “身份标识核心”,填写错误会导致证书无法匹配目标域名,进而引发浏览器信任警告。本文将从基础概念、填写规则、场景示例、操作步骤到常见误区,全面解析通配符证书 CSR 生成中 Common Name 字段的填写要点,帮助开发者精准完成配置。

一、基础概念:通配符证书与 CSR 的核心关联

在深入 Common Name 字段填写前,需先明确通配符证书与 CSR 的核心关系,理解为何该字段对证书有效性至关重要。

1. 通配符证书的域名保护范围

通配符证书的核心标识是域名中的 “*”(通配符),其保护范围具有明确限制:

  • 仅覆盖一级二级域名:*.example.com仅能保护a.example.com、b.example.com等 “主域名前加一级前缀” 的二级域名,无法保护三级域名(如test.blog.example.com需额外申请*.blog.example.com通配符证书);
  • 不包含主域名本身:*.example.com不保护example.com(裸域名),若需同时保护裸域名与二级域名,需在申请时明确 “通配符 + 裸域名” 双保护(部分 CA 支持此配置,需额外声明);
  • 通配符仅能出现一次:域名中仅允许存在一个通配符,且必须位于 “最左侧一级”,如*.*.example.com或a.*.example.com均为无效格式,CA 会直接拒绝此类 CSR 申请。

2. CSR 的作用与字段优先级

CSR 是包含域名信息、申请人身份信息、公钥的加密文件,由申请者通过本地服务器生成(如 Apache、Nginx、OpenSSL 工具),核心作用是向 CA 证明 “申请者拥有目标域名的控制权” 并传递证书配置需求。在 CSR 的所有字段中:

  • Common Name(CN):早期 HTTPS 标准中,CN 字段是唯一标识证书保护域名的字段,即 “证书仅对 CN 字段填写的域名生效”;
  • Subject Alternative Name(SAN,主题备用名称):随着多域名证书需求增加,SAN 字段成为补充,可同时填写多个域名(如example.com、*.example.com、example.net),且当前浏览器优先识别 SAN 字段—— 但对于通配符证书,Common Name 字段仍是 “基础标识”,需与 SAN 字段中的通配符域名保持一致,否则会触发兼容性问题(部分旧版浏览器仍依赖 CN 字段验证)。

简言之,通配符证书的 CSR 中,Common Name 字段需准确体现 “通配符域名格式”,且需与 SAN 字段协同,确保覆盖所有目标保护域名,同时符合 CA 的格式规范。

二、Common Name 字段的核心填写规则:通配符域名的标准格式

通配符证书 CSR 的 Common Name 字段填写,需严格遵循 “通配符位置 + 域名层级 + 格式规范” 三大原则,任何偏差都会导致证书申请失败或生效异常。

1. 核心格式:*.主域名(如*.example.com)

这是通配符证书 Common Name 字段的唯一有效格式,需注意以下细节:

(1)通配符 “*” 的位置:必须位于 “二级域名的前缀位置”,即 “*+.+ 主域名”,例如:

  • 正确:*.example.com(保护所有xxx.example.com)、*.shop.example.com(保护所有xxx.shop.example.com);
  • 错误:example.*.com(通配符位置错误)、*example.com(缺少 “.” 分隔)、*.com(通配符覆盖顶级域名,CA 不支持)。

(2)主域名的准确性:需填写 “已完成域名备案(国内)或域名所有权验证(海外)” 的主域名,例如企业实际使用的company.com,而非测试用的test-company.com(未验证域名会导致 CA 审核失败)。

(3)大小写不敏感:域名本身是大小写不敏感的,*.Example.com与*.example.com在技术上等效,但为统一规范,建议全部使用小写字母填写(CA 默认按小写处理,避免格式不一致导致的识别偏差)。

2. 特殊场景:同时保护裸域名与通配符域名的填写

若需证书同时保护 “裸域名(example.com)” 与 “通配符域名(*.example.com)”,Common Name 字段的填写需结合 CA 的支持策略:

  • 场景 1:CA 支持 “通配符 + 裸域名” 合并证书:此时 Common Name 字段可填写通配符域名(*.example.com),同时在 SAN 字段中补充裸域名(example.com)—— 这是当前主流方案,因 SAN 字段可兼容多域名,且符合浏览器最新验证标准;
  • 场景 2:CA 要求分开申请:部分 CA 对裸域名与通配符域名按 “两个证书” 处理,此时需分别生成两份 CSR:一份 Common Name 为example.com(裸域名证书),另一份为*.example.com(通配符证书),申请后需分别部署。

注意:无论哪种场景,Common Name 字段不可同时填写裸域名与通配符域名(如example.com,*.example.com),这种格式不符合 X.509 证书标准,CA 会直接拒绝 CSR 解析。

3. 禁止填写的无效格式:避开 CA 拒绝的常见错误

以下 Common Name 格式在通配符证书 CSR 中均为无效,申请时会被 CA 驳回,需重点规避:

  • 包含多个通配符:如*.*.example.com(试图覆盖三级域名)、a-*.example.com(通配符与固定前缀混合);
  • 包含 IP 地址:通配符证书仅支持域名,不支持 IP 地址(如*.192.168.1.1),IP 证书需单独申请且无通配符格式;
  • 包含协议或端口:如https://*.example.com或*.example.com:8080,CSR 字段仅需填写纯域名,协议与端口属于应用层配置,与证书无关;
  • 拼写错误或未注册域名:如*.exmaple.com(拼写错误)、*.my-new-domain-not-registered.com(未注册域名),CA 会通过 WHOIS 查询或域名验证(如 DNS 解析、文件验证)确认所有权,未通过则拒绝颁发证书。

三、不同工具生成 CSR 时的 Common Name 填写示例

生成 CSR 的工具多样(如 OpenSSL 命令行、Apache/Nginx 内置工具、可视化工具如 XCA),但 Common Name 字段的填写逻辑一致,以下为主流工具的操作示例,帮助开发者对应场景完成配置。

1. OpenSSL 命令行:最通用的跨平台方案

OpenSSL 是 Linux、Windows、macOS 均支持的开源工具,是生成通配符证书 CSR 的主流选择,核心步骤与 Common Name 填写如下:

(1)生成私钥(提前准备)

首先生成 RSA 私钥(用于后续签署 CSR,需妥善保存,不可泄露):

# 生成2048位私钥(安全性满足多数场景,CA推荐4096位更高安全级)
openssl genrsa -out example_com_private.key 2048
# 若需加密私钥(防止未授权使用,每次使用需输入密码),添加-des3参数
# openssl genrsa -des3 -out example_com_private.key 2048

(2)生成 CSR 并填写 Common Name

执行以下命令生成 CSR,在交互过程中重点关注 “Common Name” 字段的填写:

openssl req -new -key example_com_private.key -out example_com.csr

执行后会进入字段交互填写,关键字段说明如下(仅标注与通配符相关的核心字段):

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.

# 1. 国家代码(必填,如中国填CN)
Country Name (2 letter code) [XX]:CN
# 2. 州/省(必填,不可缩写,如“广东省”)
State or Province Name (full name) []:Guangdong
# 3. 城市(必填,如“深圳市”)
Locality Name (eg, city) [Default City]:Shenzhen
# 4. 组织名称(必填,企业填营业执照名称,个人填“Personal”)
Organization Name (eg, company) [Default Company Ltd]:Example Technology Co., Ltd.
# 5. 组织单位(可选,如“技术部”)
Organizational Unit Name (eg, section) []:Technology Department
# 6.  Common Name(核心!通配符证书需填“*.主域名”)
Common Name (eg, your name or your server's hostname) []:*.example.com
# 7. 邮箱(必填,CA用于沟通证书审核进度)
Email Address []:admin@example.com

# 以下为可选扩展字段,直接按回车跳过即可(通配符证书无需额外配置)
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

(3)验证 CSR 中 Common Name 的正确性

生成 CSR 后,需通过命令验证字段是否正确(避免填写错误后提交 CA):

openssl req -text -noout -in example_com.csr

在输出结果中找到 “Subject” 字段,确认 “CN” 对应的值为*.example.com,示例如下:

Subject: C = CN, ST = Guangdong, L = Shenzhen, O = Example Technology Co., Ltd., OU = Technology Department, CN = *.example.com, emailAddress = admin@example.com

若 CN 字段不符合预期,需删除错误 CSR 与私钥,重新执行上述步骤。

2. Nginx 内置配置:结合服务器环境生成

若需在 Nginx 服务器中直接生成 CSR(后续用于 Nginx 证书部署),可通过openssl命令结合 Nginx 配置路径生成,核心差异仅为文件保存路径,Common Name 填写逻辑一致:

(1)进入 Nginx 配置目录(示例路径)

cd /etc/nginx/ssl  # 多数Linux系统的Nginx证书默认存放路径

(2)生成私钥与 CSR(同 OpenSSL 标准命令)

# 生成私钥
openssl genrsa -out example_com_private.key 4096
# 生成CSR,Common Name填写*.example.com
openssl req -new -key example_com_private.key -out example_com.csr

后续交互填写与 “OpenSSL 命令行” 一致,重点确保 CN 字段为通配符格式。

(3)关联 Nginx 配置(提前准备)

生成 CSR 并获取证书后,需在 Nginx 配置文件中指定证书路径(此处仅为关联说明,非 CSR 生成步骤):

server {
    listen 443 ssl;
    server_name example.com *.example.com;  # 同时配置裸域名与二级域名
    # 证书文件(CA颁发的crt文件)
    ssl_certificate /etc/nginx/ssl/example_com.crt;
    # 私钥文件(生成CSR时的private.key)
    ssl_certificate_key /etc/nginx/ssl/example_com_private.key;
    # 其他SSL配置(如协议、加密套件)...
}

3. 可视化工具 XCA:适合非命令行用户

对于不熟悉命令行的开发者,可视化工具 XCA(跨平台,支持 Windows/macOS/Linux)可通过图形界面生成 CSR,Common Name 字段填写更直观:

(1)新建证书请求项目

  • 打开 XCA,点击左侧 “Certificate Signing Requests”→“New”,进入 CSR 配置界面;
  • 在 “General” 标签页中,“Name” 字段填写自定义标识(如 “example_com_wildcard”,仅用于本地管理,与证书无关)。

(2)配置 Subject 字段(核心)

  • 点击 “Subject” 标签页→“Add”,依次添加以下字段(按顺序):

1)C:国家代码(如 CN);

2)ST:州 / 省(如 Guangdong);

3)L:城市(如 Shenzhen);

4)O:组织名称(如 Example Technology Co., Ltd.);

4)CN:点击 “Add” 后,“Type” 选择 “CN”,“Value” 填写*.example.com(必须准确);

  • 点击 “OK” 保存 Subject 配置。

(3)生成 CSR

  • 切换到 “Key” 标签页,选择 “Create a new key”→“RSA”,设置密钥长度为 4096 位;
  • 点击 “Generate” 生成私钥与 CSR,选择保存路径(私钥需加密存储,CSR 用于提交 CA)。

四、关键注意事项:避免证书生效失败的核心细节

除了格式正确性,Common Name 字段填写还需结合 “CA 审核要求”“域名控制权验证”“证书部署兼容性” 等细节,否则会导致证书申请通过后仍无法正常使用。

1. 与 SAN 字段的协同:确保浏览器兼容性

当前主流浏览器(Chrome 58+、Firefox 48+、Edge 79+)优先通过 SAN 字段验证证书域名,而非 Common Name 字段 —— 因此即使 Common Name 填写正确,若 SAN 字段未包含对应的通配符域名,仍会触发信任警告。解决方式如下:

  • 生成 CSR 时主动添加 SAN 字段:通过 OpenSSL 配置文件指定 SAN,避免依赖 CA 自动补充(部分 CA 可能遗漏)。示例 OpenSSL 配置文件(openssl.cnf):
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_ca
req_extensions = v3_req

[req_distinguished_name]
# 此处省略Country、State等字段配置(与前文一致)

[v3_req]
# 关键:添加SAN字段,包含通配符域名与裸域名(如需)
subjectAltName = @alt_names

[alt_names]
DNS.1 = *.example.com
DNS.2 = example.com  # 如需保护裸域名,添加此行

生成 CSR 时引用该配置文件:

openssl req -new -key example_com_private.key -out example_com.csr -config openssl.cnf
  • 申请时向 CA 明确 SAN 需求:若通过可视化平台(如阿里云 SSL、Let's Encrypt Certbot)申请,需在表单中勾选 “同时添加通配符域名与裸域名到 SAN”,避免 CA 默认仅添加 Common Name 字段。

2. 域名控制权验证:确保 CA 审核通过

CA 在收到 CSR 后,会通过 “域名验证” 确认申请者拥有 Common Name 字段中域名的控制权,验证方式通常有三种(申请者需按 CA 要求完成):

  • DNS 验证:在域名的 DNS 解析中添加 CA 提供的 “TXT 记录”(如_acme-challenge.example.com对应的值),CA 会查询该记录是否存在;
  • 文件验证:在目标域名的服务器根目录下上传 CA 提供的 “验证文件”(如http://example.com/.well-known/acme-challenge/xxx),CA 会访问该 URL 确认文件内容;
  • 邮箱验证:CA 向域名的 WHOIS 注册邮箱或预设管理员邮箱(如admin@example.com、webmaster@example.com)发送验证邮件,申请者点击邮件中的链接完成确认。

注意:若 Common Name 字段填写*.example.com,CA 的验证对象是 “主域名example.com”,而非二级域名 —— 只需完成主域名的控制权验证,即可覆盖所有二级域名的证书申请。

3. 证书类型与 Common Name 的匹配:避免 “类型错配”

不同类型的通配符证书(如 DV、OV、EV)对 Common Name 字段的填写要求一致,但 CA 的审核严格程度不同,需确保申请类型与使用场景匹配:

  • DV 通配符证书(域名验证型)仅验证域名控制权,适合个人网站、测试环境,Common Name 填写*.example.com即可,审核时间 10 分钟 - 1 小时;
  • OV 通配符证书(组织验证型)需额外验证企业营业执照、组织机构代码等身份信息,Common Name 字段的域名需与企业主体信息关联(如域名所有者与企业名称一致),审核时间 1-3 个工作日;
  • EV 通配符证书(扩展验证型)最高安全级别,需验证企业真实经营地址、法律资质等,Common Name 字段的域名需完全归属企业,审核时间 3-5 个工作日,部署后浏览器地址栏会显示 “绿色企业名称”。

若申请 OV/EV 证书时,Common Name 字段的域名所有者与企业主体不一致(如用个人名义注册的域名申请企业 OV 证书),CA 会要求先完成域名过户,再重新提交 CSR。

4. 多域名通配符的特殊处理:避免 “超范围申请”

若需同时保护多个不同主域名的通配符(如*.example.com与*.example.net),不可在同一份 CSR 的 Common Name 字段填写多个通配符(如*.example.com,*.example.net),正确做法是:

  • 申请 “多域名通配符证书”:部分 CA 支持此类证书(如 Symantec、GeoTrust),需生成包含多个 SAN 字段的 CSR,Common Name 字段填写其中一个主域名的通配符(如*.example.com),SAN 字段补充其他主域名的通配符(如*.example.net);
  • 分开申请独立通配符证书:若 CA 不支持多域名通配符,则需为每个主域名单独生成 CSR,Common Name 字段分别填写对应的通配符(如*.example.com和*.example.net),后续分别部署证书。

五、常见误区与解决方案:避开开发者常踩的 “坑”

在实际操作中,开发者常因对通配符规则或 CSR 字段逻辑理解偏差,导致 Common Name 填写错误,以下为高频误区及针对性解决方案。

误区 1:将通配符域名填写为 “*.www.example.com”

  • 错误原因:混淆二级域名与三级域名的保护范围,认为*.www.example.com可保护blog.www.example.com等三级域名。
  • 问题本质:www.example.com本身是example.com的二级域名,*.www.example.com属于 “三级域名通配符”,需单独申请,且无法覆盖www.example.com本身。
  • 正确做法:若需保护www.example.com下的三级域名,Common Name 字段填写*.www.example.com;若需保护所有example.com的二级域名(含www.example.com),填写*.example.com。

误区 2:Common Name 填写 “example.com”,却期望证书保护 “*.example.com”

  • 错误原因:认为 “裸域名证书可自动覆盖二级域名”,或误将通配符格式遗漏。
  • 问题本质:普通裸域名证书(Common Name 为example.com)仅保护example.com,无法保护任何二级域名,浏览器访问blog.example.com时会提示 “证书域名不匹配”。
  • 正确做法:重新生成 CSR,Common Name 字段填写*.example.com,并在 SAN 字段补充example.com(如需同时保护裸域名),向 CA 申请通配符证书(不可用普通裸域名证书替代)。

误区 3:使用 “*example.com” 或 “example.*” 等非标准格式

  • 错误原因:不了解通配符的语法规则,随意调整 “*” 的位置。
  • 问题本质:CA 仅认可 “*.主域名” 格式,其他格式会被判定为 “无效域名”,直接驳回 CSR 申请。
  • 正确做法:严格遵循 “*+.+ 主域名” 格式,如*.example.com,若需保护其他层级的域名,需明确域名层级(如*.shop.example.com)。

误区 4:生成 CSR 后未验证字段,直接提交 CA

  • 错误原因:依赖 “CA 会自动修正错误”,跳过本地验证步骤。
  • 问题本质:CA 仅审核 “域名控制权” 与 “字段格式合法性”,不会修正 Common Name 字段的 “逻辑错误”(如将*.example.com误写为*.example.net),证书颁发后发现错误需重新申请,浪费时间与成本。
  • 正确做法:生成 CSR 后,通过openssl req -text -noout -in 文件名.csr命令验证,重点确认 “Subject” 中的 “CN” 字段与 “X509v3 Subject Alternative Name” 中的 SAN 字段是否符合预期。

通过本文的规则解析与操作示例,开发者可精准完成通配符证书 CSR 中 Common Name 字段的填写,确保证书申请一次通过且正常生效,为企业级域名的 HTTPS 加密提供稳定基础。


Dogssl.cn拥有20年网络安全服务经验,提供构涵盖国际CA机构SectigoDigicertGeoTrustGlobalSign,以及国内CA机构CFCA沃通vTrus上海CA等数十个SSL证书品牌。全程技术支持及免费部署服务,如您有SSL证书需求,欢迎联系!
相关文档
立即加入,让您的品牌更加安全可靠!
申请SSL证书
0.160061s