cn项是什么?

42 阅读2分钟

CN(Common Name,通用名称) 是 X.509 证书 Subject(主体 / 持有者)字段里的核心属性,属于可识别名(DN, Distinguished Name) 的关键部分。

一、专业定义

  • 全称commonName,缩写 CN
  • 标准:X.509 v3 / RFC 5280
  • 位置:在证书 SubjectIssuer(颁发者)DN 中
  • 长度:最大 64 字节(ASCII)

二、SSL/TLS 证书中的作用(历史 vs 现代)

1. 传统作用(已废弃)

  • 唯一指定主域名 / FQDN

    • 例:CN=www.example.comCN=example.com
  • 浏览器唯一验证域名匹配的字段

  • 限制:只能填 1 个名称,不支持多域 / IP / 邮箱

2. 现代地位(2017+ 浏览器标准)

  • SAN 优先:现代浏览器(Chrome/Firefox/Safari)只认 SAN 扩展
  • CN 仅兼容保留:即便 CN 正确,SAN 不含访问域名 → 直接报错
  • 通配符CN=*.example.com 仍可用,但必须同步写入 SAN

三、Subject DN 完整结构(示例)

plaintext

C=CN, ST=Guangdong, L=Shenzhen, O=Example Ltd, OU=IT, CN=www.example.com
  • C=Country:国家(ISO 3166-1)
  • ST=State/Province:州 / 省
  • L=Locality:城市 / 地区
  • O=Organization:企业 / 组织名
  • OU=Organizational Unit:部门
  • CN=Common Name主机名 / 域名(SSL 场景)

四、关键规范(必须遵守)

  1. 纯域名:不能带 https://、端口、路径

    • https://www.example.comwww.example.com:443
    • www.example.com
  2. 精确匹配example.comwww.example.com

  3. 通配符*.example.com 仅匹配一级子域(a.example.com

  4. 字符集:ASCII,避免特殊符号

五、CN vs SAN(核心区别)

表格

特性CN (Common Name)SAN (Subject Alternative Name)
数量1 个多值:N 个域名 / IP / 邮箱
现代支持已废弃(浏览器忽略)强制要求
用途单域名、兼容多域、通配、IP、多服务
证书类型单域名证书SAN/UCC 多域证书

六、CSR 生成示例(OpenSSL)

bash

运行

openssl req -new -key server.key -out server.csr \
  -subj "/C=CN/ST=Shanghai/L=Shanghai/O=Org/OU=Dev/CN=www.example.com"

七、总结(专业要点)

  • CN 是传统单域名标识现代 HTTPS 已被 SAN 完全替代
  • 合规证书:CN 填写主域名,且必须在 SAN 中重复包含
  • 部署原则:只信任 SAN,不依赖 CN