据我了解验证远程计算机 SSL 证书的过程,远程系统发送其“叶”证书和任何中间证书,但不发送根证书。执行此openssl
命令显示根证书不是由远程服务器发送的:
openssl s_client -showcerts -connect www.stackoverflow.com:443
然后,客户端负责检查叶证书是否确实由第一个中间证书签名,第一个中间证书是否由第二个中间证书签名,依此类推。最终,检查远程系统提供的最后一个证书上的签名,以验证它是由已经被信任的根证书签名的——即,已经在“信任库”中。
那么问题来了:作为客户,您为什么要存储中间证书?Windows 证书存储区有一个指定用于存储“中间证书颁发机构”的区域。它是干什么用的?是否存在需要存储中间证书的情况?