我知道 HTTPS 是基于证书颁发机构 (CA) 的。如果客户端尝试向服务器发送请求(假设有证书),中间人是否有可能从客户端获取证书并从 CA 获取公钥?同时,中间人向客户端提供伪造的证书,当客户端将证书发送给 CA 时,中间人再次拦截该证书并向其提供伪造的公钥。
希望我的问题足够清楚。谢谢。
答案1
正常情况下,客户端在建立 HTTPS(或任何其他 TLS)连接时不会连接到 CA,他们拥有所有他们信任的 CA 证书的本地副本,以颁发服务器证书。
因此,客户端连接到服务器,服务器向客户端发送其服务器证书的副本,其中包含由 CA 的私钥签名的哈希值,该哈希值与客户端本地的 CA 公钥副本进行检查。