我知道您可以通过您的网络服务器设置协议/密码:
Nginx:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
阿帕奇:
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:!aNULL:!MD5
但我的问题是可以创建 SSL 证书以仅适用于某些协议吗?
并且可以创建仅与某些密码一起使用的证书吗?
我知道您可以通过您的网络服务器设置协议/密码:
Nginx:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
阿帕奇:
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:!aNULL:!MD5
但我的问题是可以创建 SSL 证书以仅适用于某些协议吗?
并且可以创建仅与某些密码一起使用的证书吗?
.. 仅适用于某些协议?..只使用某些密码?
证书大多独立于协议。
但是证书和密码之间有轻微的相关性:密码的一部分指定了身份验证算法,可能的算法取决于证书的种类。这意味着您不能使用带有 *_ECDSA_* 密码的 RSA 证书,也不能使用带有 RSA 密钥交换的 ECDSA 证书。还有 ECDH(非 ECDHE)和 DH(非 DHE)密码需要证书中的特定信息。但对称加密(即AES、RC4...)和HMAC 的选择与证书无关。
这意味着证书类型限制了可以使用的密码,但您不能直接使用证书中的某些信息来限制可能的密码或协议。
如果您考虑将基于证书的身份验证或身份验证与 SSL 密码真正发挥作用的完整性交换分开,这将有所帮助。
该证书仅适用于验证服务器“X”是否真的是“X”而不是“x”。
相反,密码用于提供一种机制,您可以在其中建立对称密钥以进行数据交换。正如您所猜测的那样,一旦建立了服务器身份验证,这个阶段就会发生。