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

标签 web-services ssl certificate

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

疑问:

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

谢谢

最佳答案

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

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

请注意,较新的技术(如 DANE)允许提供商在 DNS 中插入其使用的证书(或其指纹)或 CA 的证书,以向客户端发出信号,确保仅使用连接到它是用那些加密 Material 完成的(在默认情况下我们信任太多 CA 并且它们中的任何一个都可以为任何资源提供证书,因此整个安全性只是无论您实际使用的是哪个 CA,它都是您信任库中所有 CA 中最弱的 CA。

DNS CAA 记录早于 DANE,也可用于指示给定资源“允许”哪些证书。

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

关于web-services - 为什么我需要为 https 连接安装证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50604515/

相关文章:

email - 点项目

iphone - 断开互联网连接时如何处理 NSJSONSerialization 的崩溃

c# - 解决方案无法构建,因为它无法从服务生成的类型转换为我的类型

web-services - SOAP 与 REST : Pragmatic case studies?

css - 字体和 Font Awesome 图标无法通过 SSL 加载

ssl - SugarCRM 6.2 CE Imap 模块自签名证书错误

ios - 苹果开发证书和开发配置文件问题

java - SSLException 错误证书

web-services - 如何在 Tomcat Servlet 容器中验证和授权 webapp 请求

ssl - 如何使用 Web 设备管理设置 SSL 连接 - WSO2 IoT 3.0.0