为什么我需要为 https 连接安装证书?



关于与https资源(例如安全的Web服务(的通信,我一直在从 https://wiki.genexus.com/commwiki/servlet/wiki?4443,Consuming+web+services+under+https+in+Java 中读到,为了建立来自Java的连接,"我们必须安装我们寻求通信的服务器证书。此类证书包含用于加密发送的信息的公钥,仅由服务器使用其私钥解码(在此处阅读更多内容(。因此,在使用https下的服务时,我们将需要服务器证书来建立我们的通信">

怀疑:

  1. 据我了解,当您打开与https资源的连接时,例如从浏览器,服务器发送证书,但您不需要以前安装它,或者我是否需要以前总是在我的机器中安装它(浏览器...(? 我为什么需要它?

谢谢

您通常有一个信任的 CA 列表,然后您会自动信任由这些证书颁发机构之一颁发的服务器提供的任何证书。

对于更高的安全性设置,可以改为在带外获取其他终结点证书并验证其匹配。但是,由于证书确实会过期,因此您会遇到管理问题(CA 证书也会过期,但更常见的是在 10-20 年的时间跨度内过期,而不是单个证书的有效期最长为 1 年,甚至只有 3 个月的 Let's Encrypt(,您需要通过一些值得信赖的方式获取它们。

请注意,较新的技术(如 DANE(允许提供商在 DNS 中插入它使用的证书(或其指纹(或 CA 的证书,以便向客户端发出信号,以确保仅使用使用这些加密材料完成的连接(这与当前 Web PKI 的流之一作斗争,因为我们默认信任太多的 CA 和它们中的任何一个都可以为任何资源提供证书,因此整个安全性只是信任存储区中所有 CA 中最弱的 CA 之一,无论您实际使用哪个(。

DNSCAA记录早于 DANE,也可用于指示给定资源"允许"哪些证书。

TLS 提供了多种好处,其中包括身份验证和完整性。它们是正交的,但与直觉相反,身份验证比完整性更重要(应该排在第一位((将受保护的内容发送给您未验证的一方没有意义(。TLS 中的身份验证通常是(这不是唯一的方法(使用 X.509 证书(通常两次错误地命名为"SSL 证书"(完成,要么在一端,要么在两端(在这方面它是对称的,每个端点都可以根据需要对另一个端点进行身份验证(。

最新更新