打开网页,地址栏小锁图标点一下就能查看证书信息,里面有一栏叫Subject,中文名称主体。这个字段到底起什么作用?
简单讲Subject相当于证书的身份说明,用来声明证书归属方,类似身份证信息栏,记录网站或者组织信息。仔细看里面有多个缩写字段,CN、O、OU、C、ST、L,每个都有固定含义,不能随意填写。
CN全称Common Name,通用名称。网站证书这个字段存放域名。访问百度,证书CN就是www.baidu.com。属于核心字段,浏览器优先拿CN和访问网址比对。匹配不上弹出安全警告。早期一张证书只能填写单个CN,后续出现SAN扩展支持绑定多个域名,CN重要性略微下降,但依旧关键。

O是Organization,组织名称。填写企业或者机构法定全称,例如北京百度网讯科技有限公司。但不是所有证书都带有O字段。免费DV证书大多没有O,签发机构只核验域名归属,不验证背后主体。OV、EV证书包含O字段,经过人工审核,确认组织真实存在。
OU是Organizational Unit,组织单位。理解成公司内部部门,像技术部、IT运维。现在这个字段使用越来越少,很多证书直接留空。部门信息变动频繁,维护麻烦,浏览器也不会展示这个字段。
C代表Country,国家双字母代码,CN是中国,US是美国。ST即State/Province,省或者州。L是Locality,城市。三个字段组合标记组织注册地址。实际签发时CA机构大多只核验国家,省市信息填写相对宽松,OV证书尤其明显。
还有一些偶尔出现字段。emailAddress存放联系邮箱,早年使用较多,现在基本淘汰。serialNumber证书序列号,CA分配,唯一标识单张证书。businessCategory填写Private Organization或者Government Entity,EV证书比较常见。
这些字段实际使用带来哪些影响?最直观就是浏览器地址栏展示。DV证书只显示锁图标,点开Subject只有CN。OV证书点开可以看到O字段,也就是企业名称。EV证书以前直接在地址栏展示企业名称,Chrome、Firefox取消这个展示,但证书详情Subject依旧完整保留O和businessCategory。
证书排查也会用到Subject。运维人员用openssl命令访问网站,执行openssl s_client -connect example.com:443,返回内容包含Subject。排查证书故障,第一时间核对CN是否匹配域名、O字段是否正常、签发机构和有效期。CN和域名不匹配或者O乱码,基本确定证书配置异常。
普通用户怎么借助Subject判断网站可信度。点开锁图标,如果Subject只有CN没有O,证书只验证域名所有权,证书没有核验运营主体身份。不代表网站一定有问题,很多个人博客、小型工具站都是DV证书。但如果页面要求填写银行卡、身份证这类敏感信息,证书Subject没有企业名称,就要提高警惕。反过来O字段写中国工商银行股份有限公司,签发机构是DigiCert、GlobalSign这类知名CA,可信度更高。
有一点要注意,Subject信息不能永远保证准确。CA签发OV、EV证书会做审核,但审核力度存在差异,证书有效期一般一年,一年之内企业更名、地址变更,证书信息不会同步更新。Subject只能当作参考,不是绝对可信凭证。
很多人混淆Subject和Issuer。Subject是证书持有者信息,Issuer是签发证书CA机构信息。打开证书详情,上方Issuer,下方Subject。Issuer代表谁签发证书,Subject代表证书发给谁。证书信任链就是从Issuer一路向上追溯,直到根证书。
下次浏览网页看到地址栏小锁,可以点开查看Subject。花几秒,就能多一层判断网站的信息。