gpt4 book ai didi

使用中间证书的 SSL 握手

转载 作者:太空宇宙 更新时间:2023-11-03 13:27:39 26 4
gpt4 key购买 nike

在 SSL 握手期间,浏览器会根据需要使用提供的 URL 从主机 Web 服务器下载任何中间证书。我相信浏览器附带来自公共(public) CA 的预安装证书,这些证书只有根证书的公钥。

1) 当使用独立的 java 程序调用 https url 时 [ https://xyz.com ..正在使用 Verisign 证书],我不需要将该证书添加到任何信任库,因为它的根公开已经在 jdk 的 cacerts 信任库文件中可用。这是正确的说法吗?

2) 当我从应用程序服务器运行相同的程序时,它需要将所有中间证书分别添加到服务器信任库。为什么这会以不同的方式起作用。

最佳答案

如果服务器证书的信任链是:root-intermediate#1-intermediate#2-server 并且客户端(浏览器)在其 CA 存储中有根作为受信任的 CA,它需要一种方法来验证服务器证书检查直到根的完整链。并且由于客户端通常不知道服务器需要提供它们的中间 CA。

有时它似乎可以在不提供这些中间 CA 的情况下工作。首先,浏览器通常会缓存它们获得的中间 CA,因此如果中间#2 与另一台服务器已经看到的相同,则验证将成功,但仅适用于之前访问过另一台服务器的客户端:(

另一种方法是在证书中提供一个 URL,可以在其中下载颁发者证书,例如服务器可以为 intermediate#2 提供指向证书的链接,intermediate#2 可以提供指向 intermediate#1 的链接。在这种情况下,客户端可以下载丢失的证书。但是,此功能并未得到普遍采用,例如某些浏览器可能提供它,但浏览器之外的 SSL 库通常不提供。

关于使用中间证书的 SSL 握手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21607905/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com