{{item}}
{{item.title}}
{{items.productName}}
{{items.price}}/年
{{item.title}}
部警SSL证书可实现网站HTTPS加密保护及身份的可信认证,防止传输数据的泄露或算改,提高网站可信度和品牌形象,利于SEO排名,为企业带来更多访问量,这也是网络安全法及PCI合规性的必备要求
前往SSL证书证书签名请求(CSR)作为向证书颁发机构(CA)申请证书的核心文件,其字段填写的准确性直接决定证书能否正常生效 —— 其中Common Name(通用名称)字段更是通配符证书的 “身份标识核心”,填写错误会导致证书无法匹配目标域名,进而引发浏览器信任警告。本文将从基础概念、填写规则、场景示例、操作步骤到常见误区,全面解析通配符证书 CSR 生成中 Common Name 字段的填写要点,帮助开发者精准完成配置。
在深入 Common Name 字段填写前,需先明确通配符证书与 CSR 的核心关系,理解为何该字段对证书有效性至关重要。
通配符证书的核心标识是域名中的 “*”(通配符),其保护范围具有明确限制:
CSR 是包含域名信息、申请人身份信息、公钥的加密文件,由申请者通过本地服务器生成(如 Apache、Nginx、OpenSSL 工具),核心作用是向 CA 证明 “申请者拥有目标域名的控制权” 并传递证书配置需求。在 CSR 的所有字段中:
简言之,通配符证书的 CSR 中,Common Name 字段需准确体现 “通配符域名格式”,且需与 SAN 字段协同,确保覆盖所有目标保护域名,同时符合 CA 的格式规范。
通配符证书 CSR 的 Common Name 字段填写,需严格遵循 “通配符位置 + 域名层级 + 格式规范” 三大原则,任何偏差都会导致证书申请失败或生效异常。
这是通配符证书 Common Name 字段的唯一有效格式,需注意以下细节:
(1)通配符 “*” 的位置:必须位于 “二级域名的前缀位置”,即 “*+.+ 主域名”,例如:
(2)主域名的准确性:需填写 “已完成域名备案(国内)或域名所有权验证(海外)” 的主域名,例如企业实际使用的company.com,而非测试用的test-company.com(未验证域名会导致 CA 审核失败)。
(3)大小写不敏感:域名本身是大小写不敏感的,*.Example.com与*.example.com在技术上等效,但为统一规范,建议全部使用小写字母填写(CA 默认按小写处理,避免格式不一致导致的识别偏差)。
若需证书同时保护 “裸域名(example.com)” 与 “通配符域名(*.example.com)”,Common Name 字段的填写需结合 CA 的支持策略:
注意:无论哪种场景,Common Name 字段不可同时填写裸域名与通配符域名(如example.com,*.example.com),这种格式不符合 X.509 证书标准,CA 会直接拒绝 CSR 解析。
以下 Common Name 格式在通配符证书 CSR 中均为无效,申请时会被 CA 驳回,需重点规避:
生成 CSR 的工具多样(如 OpenSSL 命令行、Apache/Nginx 内置工具、可视化工具如 XCA),但 Common Name 字段的填写逻辑一致,以下为主流工具的操作示例,帮助开发者对应场景完成配置。
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 与私钥,重新执行上述步骤。
若需在 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配置(如协议、加密套件)...
}对于不熟悉命令行的开发者,可视化工具 XCA(跨平台,支持 Windows/macOS/Linux)可通过图形界面生成 CSR,Common Name 字段填写更直观:
(1)新建证书请求项目
(2)配置 Subject 字段(核心)
1)C:国家代码(如 CN);
2)ST:州 / 省(如 Guangdong);
3)L:城市(如 Shenzhen);
4)O:组织名称(如 Example Technology Co., Ltd.);
4)CN:点击 “Add” 后,“Type” 选择 “CN”,“Value” 填写*.example.com(必须准确);
(3)生成 CSR
除了格式正确性,Common Name 字段填写还需结合 “CA 审核要求”“域名控制权验证”“证书部署兼容性” 等细节,否则会导致证书申请通过后仍无法正常使用。
当前主流浏览器(Chrome 58+、Firefox 48+、Edge 79+)优先通过 SAN 字段验证证书域名,而非 Common Name 字段 —— 因此即使 Common Name 填写正确,若 SAN 字段未包含对应的通配符域名,仍会触发信任警告。解决方式如下:
[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.cnfCA 在收到 CSR 后,会通过 “域名验证” 确认申请者拥有 Common Name 字段中域名的控制权,验证方式通常有三种(申请者需按 CA 要求完成):
注意:若 Common Name 字段填写*.example.com,CA 的验证对象是 “主域名example.com”,而非二级域名 —— 只需完成主域名的控制权验证,即可覆盖所有二级域名的证书申请。
不同类型的通配符证书(如 DV、OV、EV)对 Common Name 字段的填写要求一致,但 CA 的审核严格程度不同,需确保申请类型与使用场景匹配:
若申请 OV/EV 证书时,Common Name 字段的域名所有者与企业主体不一致(如用个人名义注册的域名申请企业 OV 证书),CA 会要求先完成域名过户,再重新提交 CSR。
若需同时保护多个不同主域名的通配符(如*.example.com与*.example.net),不可在同一份 CSR 的 Common Name 字段填写多个通配符(如*.example.com,*.example.net),正确做法是:
在实际操作中,开发者常因对通配符规则或 CSR 字段逻辑理解偏差,导致 Common Name 填写错误,以下为高频误区及针对性解决方案。
通过本文的规则解析与操作示例,开发者可精准完成通配符证书 CSR 中 Common Name 字段的填写,确保证书申请一次通过且正常生效,为企业级域名的 HTTPS 加密提供稳定基础。
Dogssl.cn拥有20年网络安全服务经验,提供构涵盖国际CA机构Sectigo、Digicert、GeoTrust、GlobalSign,以及国内CA机构CFCA、沃通、vTrus、上海CA等数十个SSL证书品牌。全程技术支持及免费部署服务,如您有SSL证书需求,欢迎联系!