HTTPS请求概述
在 Windows 系统上,进行 HTTPS 网络请求的证书校验过程通常如下:
- 当进行 HTTPS 请求时,服务器会把它的证书发送给客户端。
- 客户端会检查证书是否已经被信任,如果没有,客户端会尝试建立一个安全连接。证书是否被信任是通过检查证书中的颁发者(CA)是否被信任来判断的。
- 如果证书被信任,客户端会验证证书中的公钥是否匹配服务器的私钥,并验证证书中的信息是否与服务器的信息匹配。如果验证成功,客户端和服务器就可以建立一个安全连接,进行数据传输。
在 Windows 系统上,证书的信任关系是由操作系统的证书存储管理的。Windows 系统有一个叫做“证书管理器”的工具,可以用来查看和管理证书。对于 HTTPS 请求,大多数程序会使用操作系统的证书存储来检查证书是否被信任,但有些程序也可能会使用自己的证书存储。
证书可信检查过程
在 Windows 系统上,当客户端收到服务器的证书时,会进行以下验证过程,以检查证书是否被信任:
- 首先,客户端会检查证书是否已经被操作系统或浏览器内置的信任根证书机构所信任。如果证书的颁发机构是以前未知的,则证书将被视为不受信任。
- 如果证书的颁发机构是已知的,客户端会检查证书链中所有证书的有效性,以确保它们都是有效的、未过期的,并且没有被吊销。
- 如果证书链中的每个证书都是有效的,则客户端会检查证书中的主题名称,确保它与服务器的主机名匹配。如果主题名称不匹配,证书将被视为不受信任。
- 如果证书通过了所有这些验证步骤,则客户端将信任该证书,并允许与服务器建立安全连接。
如果证书未通过验证,则客户端将不会信任证书,会显示一个警告或错误消息,并且不会与服务器建立安全连接。
手动验证证书
注意: certutil
命令行工具可以验证证书的有效性,但它无法检查证书的主题名称是否与服务器的主机名匹配
打开cmd 命令行, 并转到 证书所在文件夹, 然后执行以下命令:
certutil -verify -urlfetch xxxt
查看输出结果
评论区