Apache / OpenSSL 配置关键字 `SSLProtocol` 与 `SSLCipherSuite`

Apache / OpenSSL 配置关键字 `SSLProtocol` 与 `SSLCipherSuite`

根据阿帕奇文档我可以使用(ao)两个不同的关键字配置密码套件,并且互联网上的示例经常使用这两个关键字(但不一定与下面的示例相同)。

SSLProtocol和之间有什么区别SSLCipherSuite,我应该使用它们之一还是两者都使用?

SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ALL:!SSLv2:!SSLv3

或者列出单独的密码是否更好SSLCipherSuite

SSLCipherSuite ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES128-SHA:AES128-SHA:RC4-SHA ...

这两个关键字的配置有根本不同吗?我有这种感觉,我在这里忽略了一些重要的东西。

上述配置不一定是好的做法,它们只是一个例子来解释我的疑问。

答案1

SSLProtocol配置允许哪些协议(SSL 或 TLS)以及这些协议的哪些特定版本。

例如这个:

SSLProtocol all -SSLv2 -SSLv3

表示启用除 SSLv2 和 SSLv3 之外的所有受支持的协议。

SSLCipherSuite配置可以使用哪些密码套件。每个协议都支持不同的重叠密码集;有了这个,您可以应用您想要允许的密码的细粒度设置。

除了指定各个密码的列表之外,您还可以使用别名,例如SSLv3(这意味着 SSLv3 协议允许的所有密码)或TLSv1(TLSv1 协议允许的所有密码)。

如果您想控制支持哪些协议,那么您应该使用SSLProtocols,因为它明确指出不允许给定的协议,而不是依赖于阻止使用协议允许的所有密码。

相关内容