SSL 证书可以规定协议吗?

信息安全 tls 证书 证书颁发机构 openssl
2021-08-27 20:42:37

我知道您可以通过您的网络服务器设置协议/密码:

Nginx:

ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers         HIGH:!aNULL:!MD5;

阿帕奇:

SSLProtocol all -SSLv2
SSLCipherSuite HIGH:!aNULL:!MD5

但我的问题是可以创建 SSL 证书以仅适用于某些协议吗?

并且可以创建仅与某些密码一起使用的证书吗?

2个回答

.. 仅适用于某些协议?..只使用某些密码?

证书大多独立于协议。

但是证书和密码之间有轻微的相关性:密码的一部分指定了身份验证算法,可能的算法取决于证书的种类。这意味着您不能使用带有 *_ECDSA_* 密码的 RSA 证书,也不能使用带有 RSA 密钥交换的 ECDSA 证书。还有 ECDH(非 ECDHE)和 DH(非 DHE)密码需要证书中的特定信息。但对称加密(即AES、RC4...)和HMAC 的选择与证书无关。

这意味着证书类型限制了可以使用的密码,但您不能直接使用证书中的某些信息来限制可能的密码或协议。

如果您考虑将基于证书的身份验证或身份验证与 SSL 密码真正发挥作用的完整性交换分开,这将有所帮助。

该证书仅适用于验证服务器“X”是否真的是“X”而不是“x”。

相反,密码用于提供一种机制,您可以在其中建立对称密钥以进行数据交换。正如您所猜测的那样,一旦建立了服务器身份验证,这个阶段就会发生。