HTTPS 数字证书的相关概念

马谦马谦马谦 计算机网络评论535字数 1164阅读 3 分 52 秒阅读模式

一、证书和 CA

HTTPS 证书的颁发和验证一共包含以下几个角色:

  1. 顶级 CA:最顶级的证书颁发机构,可以签发中间 CA/。
  2. 中间 CA:也是受信任的证书颁发机构,它由根 CA 签发,中间证书可以有很多级,中间 CA 也能再签发中间 CA 。
  3. 终端证书:由 CA 签发出来的证书。

三者的关系为:

HTTPS数字证书的相关概念-图片1

顶级 CA 机构一般不直接参数证书颁发,因为顶级 CA 就一个公私钥,泄密后影响太大。因此一般都是通过中间 CA 来颁发证书,中间 CA 可以有多层,中间 CA 也可以自己再签发中间 CA,他们都是等效的。实际上的正式的使用场景也是这样,中间 CA 会根据加密算法或其他因素再衍生出多个中间 CA 。以百度的证书,它的证书就是由一个中间 CA 颁发:

HTTPS数字证书的相关概念-图片2

生成证书时,用户只要把自己的公私钥和身份信息 (如域名信息等) 提交给 CA 机构就行,CA 机构对用户信息加密生成证书给到用户,用户把证书和私钥部署到服务端就能开启 HTTPS 了。

证书的表现形式

证书有多种表现形式,常用的为 pemder 格式,两者的区别在于前者是以 ascii 码表示的证书,后者是二进制形式。 pem 格式的证书是以下形式:

两种证书在各操作系统下都是能被直接打开的 (windows 需要修改后缀为 crt),效果也都一样,可以使用 windows 的证书管理或者 openssl 命令转换两种证书格式。

二、客户端校验 CA

证书部署到服务器后,客户端请求到证书,会根据证书信息找到对应的根证书签发机构 (CA),如果 CA 受信任,则认为证书可靠,证书中的公钥也可靠,可以建立加密连接。而如果 CA 不受信任,浏览器就会拦截请求,提示连接不安全,需要用户确认后才建立连接。如 chrome 浏览器就会弹出以下弹框信息等用户确认后才建立连接:

HTTPS数字证书的相关概念-图片3

默认情况下,操作系统都会保存一份受信任根证书列表,这样在访问网站的时候很方便就能确认当前证书的颁发者是不是受信任 CA 了。 windows 系统可以在运行中输入 certmgr.msc 来查看:

HTTPS数字证书的相关概念-图片4

ubuntu 在:

centos 在:

OCSP 校验

当本地信任库无法校验证书时,例如证书链不完整时,需要使用 OCSP 方式来校验证书的有效性,它实际上是一种在线校验证书机制,通过 OCSP 协议去请求服务端证书来检验 CA 。

三、部署 HTTPS 证书

nginx 中配置 HTTPS 证书的方法:

高版本的 nginx 配置中,取消了 ssl on 指令,改为了以下形式:

证书中如果包含了 CA,证书的格式应该为:

  最后更新:2020-4-5
马谦马谦马谦
  • 本文由 马谦马谦马谦 发表于 2020 年 4 月 4 日 14:18:14
  • 转载请务必保留本文链接:https://www.dyxmq.cn/network/https-certificate.html
wireshark导出https证书 计算机网络

wireshark 导出 https 证书

一、找到证书所在的数据包 证书是从服务端返回的,从 https 握手的过程来看,当服务端返回了 server hello 之后,就会主动将自己的证书返回给客户端,因此只要从 server hello 往后面找 1-...
创建自签名CA和SSL证书 计算机网络

创建自签名 CA 和 SSL 证书

一、创建 CA CA 全称是 CertificateAuthority,意思是证书颁发机构。只有当 CA 被认为是受信任的颁发机构时,经过该 CA 颁发出来的证书才属于受信任的证书。否则,认为证书是不受信任的。 为...
浏览器出现HSTS问题的原因以及解决方案 程序员

浏览器出现 HSTS 问题的原因以及解决方案

一、问题描述 在 HTTPS 连接被中间人代理后 (一般出现在公共场所,例如公共 WIFI 或者需要 ssl 解密的场景),第一次访问网站会弹出 HSTS 错误: HSTS 是一个很简单的访问安全策略,通过在 HTTP 头部...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证