我是否需要在两台服务器上都拥有 SSL 证书才能通过 TLS 1.2 进行通信?

我是否需要在两台服务器上都拥有 SSL 证书才能通过 TLS 1.2 进行通信?

如果两台服务器通过 TLS 1.2 进行通信,请两个都服务器需要 SSL 吗?

答案1

如果两台服务器通过 TLS 1.2 进行通信,那么两台服务器都需要有 SSL 吗?

只有当双方在对话中都充当服务员时或者如果服务使用客户端证书进行身份验证。如果一台服务器只是客户端,则不行。

例如,ServerA 正在运行一个应用程序,该应用程序向 ServerB 上运行的 Web 服务发出请求,而没有基于证书的身份验证。目前,只有 ServerB 需要证书,因为 ServerA 只是充当客户端(如浏览器)。如果 ServerA 正在运行 ServerB 需要连接的自己的 Web 服务,那么 ServerA 也需要证书。

答案2

如果两台服务器通过 TLS 1.2 进行通信,那么两台服务器都需要有 SSL 吗?

总结这取决于谁需要验证谁。因此,您可能需要 0、1 或 2 个证书。请阅读下文了解原因。

首先,请不要随波逐流,使用无效术语,“SSL 证书”是一个误称,它是用于 TLS 通信的 X.509 证书。您可能不会再遵循的另一个全局错误是:SSL 已经死了好几年了,现在不存在了,我们现在使用 TLS。

因此,我们现在有两个完全独立的东西:TLS 协议和 X.509 证书。

TLS 协议的存在是为了保护两点之间的连接,并将提供两个基本功能:机密性(任何监视交换的人都不会了解任何内容)和身份验证(确切知道交换的每个端点上都有谁)。尽管这可能违反直觉,但身份验证通常比机密性更重要。但它们确实是两个正交的功能,您可以将 TLS 交换设置为具有其中一个或另一个或两者兼有(甚至可以没有它们,但这样就不再是 TLS 了)。

这会导致多重后果。

首先,您可以在没有任何 X.509 证书的情况下进行 TLS 交换。除了 X.509 证书之外,还有其他方法可以证明身份。例如,可以使用预共享密钥进行身份验证。或者使用 OpenPGP 密钥。或者在某些非常特殊的情况下,您可以决定根本不关心身份验证,而只使用 TLS 来确保机密性(和完整性)。

现在,如果您使用 X.509 证书,则所需的证书数量取决于要对哪个端点进行身份验证:基本上,需要进行身份验证的每一方都需要有一个证书,另一方将使用该证书来验证身份(通常通过拥有受信任的 CA 列表并接受任何有效的、由这些 CA 颁发的证书)。

例如,在 HTTPS 世界中,通常只有客户端(浏览器)需要对服务器(网站)进行身份验证,因此网站拥有证书。但是,网站可以使用客户端证书(例如,而不是登录名+密码)来对其进行身份验证,在这种情况下,客户端将拥有它们的证书。两种情况都可能发生:过去,为了在法国申报收入,您可以连接到某个 HTTPS 服务器,该服务器本身通过其证书进行身份验证,并且出于显而易见的原因,该服务器通过其自己的证书对客户端进行身份验证。

以上内容对于任何版本的 TLS 都是相同的。

相关内容