TLS/SSL 协议 - Server Certificate
Server Certificate
典型的Certificate消息用于携带服务器X.509证书链。证书链是以ASN.1 DER编码的一系列证书,一个接着一个组合而成。主证书必须第一个发送,中间证书按照正确的顺序跟在主证书之后。根证书可以并且应该省略掉,因为在这个场景中它没有用处。
服务器必须保证它发送的证书与选择的算法套件一致。比方说,公钥算法与套件中使用的必须匹配。除此以外,一些密钥交换算法依赖嵌入证书的特定数据,而且要求证书必须以客户端支持的算法签名。所有这些都表明服务器需要配置多个证书(每个证书可能会配备不同的证书链)。
Certificate消息是可选的,因为并非所有套件都使用身份验证,也并非所有身份验证方法都需要证书。更进一步说,虽然消息默认使用X.509证书,但是也可以携带其他形式的标志;一些套件就依赖PGP密钥。
证书中所携带服务器的公钥,用于加密后面消息中预主密钥。消息内容如下:
从图中可以看到,服务器实际上发送的是一条证书链,包含从服务器证书到其根证书
从图中可以看到证书的各字段信息,包括证书版本号(v3)、证书序列号(0x2cee193c188278ea3e437573)、证书签名算法、颁发者信息 和 证书有效期(2019年5月9日 9:22:02 至 2020年6月25日 13:31:02)
接下来还包括证书持有者(baidu.com...)、证书公钥信息(3082010a0282010100b4c6bfda53200fea40f3b85217663b..)、扩展字段、证书的签名算法(SHA-256 RSA加密)、证书的签名值(aab9cd528edc365d47d48bf3321706468360a327054929b1...)
证书持有者:
证书公钥:
扩展字段:
[参考文献]
- 《HTTPS 权威指南:在服务器和Web应用上部署SSL/TLS和PKI》
- SSL握手过程实例分析 https://blog.csdn.net/a1510841693/article/details/84640029
最新文章
- iOS之在写一个iOS应用之前必须做的7件事(附相关资源)
- Crowd 2.7汉化中文包(原创首发)
- 后端码农谈前端(CSS篇)第七课:定位与浮动
- mysql基础知识(5)--视图
- 通过AOP 实现异常统一管理
- 深入浅出 RPC - 浅出篇
- hdu1068 Girls and Boys 二分匹配
- 8.23.3 IO-转换流的作用
- HTML转义字符串
- 通过 PackageManager 获得你想要的 App 信息
- redis的spring的xml配置
- 线程的中断.interrupt
- appium+python自动化测试
- ARP监控工具ARPalert
- 85. Maximal Rectangle (Graph; Stack, DP)
- 导出excle错误
- JDK下载安装以及环境变量的配置
- 如何将pip更新到最新版
- [Gradle] Gradle 简介
- HDU1717--小数化分数2