证书链
实例
在Chrome上任意打开一个支持HTTPS的网站,例如 https://www.baidu.com/ ,打开开发者工具,点开Security栏
点开证书路径,查看证书信息如下:
我们继续探究baidu使用的HTTPS证书,除了HTTPS使用的 baidu.com 证书,向上还有两级证书,证书有3类:
- end-user :baidu.com 包含用来加密传输数据的公钥的证书,是HTTPS中使用的证书
- intermediates:CA用来认证公钥持有者身份的证书,即确认HTTPS使用的end-user证书是属于baidu.com的证书。这类intermediates证书甚至可以有很多级。
- root:用来认证intermediates证书是合法证书的证书。
简单来说,end-user证书上面几级证书都是为了保证end-user证书未被篡改,保证是CA签发的合法证书,进而保证end-user证书中的公钥未被篡改。
两个证书相连的关键
拓展字段:Authority Info Access ,即下图的:授权中心信息访问权限
这是一个拓展字段,本身有两种方式提供上一级证书的地址,在解析证书链时,需要去这些uri上下载上一级的证书。
我们输入CA证书颁发者中的地址,下载后得到如下的证书文件。
并且也包含了拓展字段:Authority Info Access , 依次递归向上找到整个证书链。
证书字段汇总
-
序列号
序列号用于标识唯一一张证书,其值由CA选择,CA只要选择他们觉得合适的值就好。 -
颁发者(链接)
- CN: CommonName
- OU: OrganizationalUnit
- O: Organization
- L: Locality
- S: StateOrProvinceName,有些地方使用的是ST
- C: CountryName
-
使用时间
-
使用者
-
公钥
-
公钥参数
“公钥参数”字段的最重要用途是在ECDSA证书中。如果是RSA,就是null。
-
授权信息访问 Authority Info Access (链接)
- 如何获取此证书的颁发者的信息(CA颁发者访问方法)
- 可以从中检查此证书吊销的OCSP响应者的地址(OCSP访问方法)
-
证书策略
-
基本约束 (链接)
基本约束是X.509证书v3扩展。此扩展描述证书是CA证书还是最终实体证书。路径长度约束仅适用于CA证书。上一级开始算0。
-
CRL分发点
-
使用者可选名称 就是SAN啦
-
增强型密钥用法 就是指证书的密钥可以用来做什么。
-
密钥用法 就是指证书的密钥可以用来做什么。(和上面差不多)
-
授权密钥表示符 & 使用者密钥标识符
使用者密钥标识符( subject key identifier)和颁发机构密钥标识符( authority key identifier) 扩展分别建立了唯一的使用者和颁发机构标识符。证书的颁发机构密钥标识符扩展的信息必须与 颁发者的使用者密钥标识符扩展里面的信息一致。这些信息在证书链路径建立过程中相当有用 ,客户端会试图从分支(服务器)证书开始,寻找到根证书所有可能的路径。证书机构经常一个私 钥对应多个证书,而这个字段允许软件可以非常可靠地让证书和密钥对应起来。
-
SCT列表 与证书透明度有关
-
指纹 证书的指纹
参考文献
参考文献:https://docs.microsoft.com/zh-cn/windows/uwp/security/certificates