ssl - Lighttpd:仅启用了 SSLv3,但使用了 TLSv1.2

标签 ssl encryption https lighttpd

我安装了 Lighttpd-1.4.33,必须证明使用了 SSL 和 TLS。因此,我使用了 ssl.use-sslv3 和 ssl.cipher-suite 参数。
请查看我的 lighttpd.conf:

$SERVER["socket"] == ":443" {
server.document-root = "/var/www/"
server.protocol-http11 = "enable"
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/servercert.pem"
ssl.ca-file = "/etc/lighttpd/cacert.pem"
ssl.use-sslv3 = "enable"
}

当我发出请求时,它会给我一个 TLSv1.2 连接。
现在,ssl.use-sslv3 替换为以下内容:

ssl.cipher-list = "NULL-MD5:NULL-SHA:EXP-RC4-MD5:RC4-MD5:RC4-SHA:DES-CBC3-SHA:AES128-SHA:AES256-SHA:EXP1024-RC4-SHA"
ssl.honor-cipher-order = "enable"

还给我一个 TLSv1.2 连接。

所以,我的问题是:
TLSv1.2“包含”所有在 SSLv3 中使用的密码并因此使用它而不是 SSLv3 是否正确?
如果以这种方式配置,是否有机会强制 Lighttpd 拒绝 TLSv1.2 连接而不是 SSLv3?

我有必要能够强制 Lighttpd 仅使用 SSLv3 或 TLSv1.0。
谢谢你的帮助。

密码列表来自http://www.openssl.org/docs/apps/ciphers.html#tls_v1_0_cipher_suites_

最佳答案

密码套件通常不定义协议(protocol)版本,即您不能通过启用或禁用密码套件来启用或禁用协议(protocol)版本。如果服务器配置允许,您需要明确指定启用的 SSL/TLS 协议(protocol)版本。

更新:查看 http://redmine.lighttpd.net/projects/1/wiki/docs_ssl似乎 use-sslv3 参数也启用了所有 TLS 版本。

forum on Lighttpd.net建议虽然 [yet] 没有设置来控制要使用的 TLS 版本,但您可以仅启用特定于 TLS-1.2 的密码套件,从而强制使用 TLS 1.2(我认为 TLS 1.1/1.2 组合也是如此)。我没有查看源代码,所以我不能说它是如何工作的(如果它能工作的话)。

还有 here他们建议将 ssl.use-sslv3 参数设置为“禁用”以禁用 SSL 3 并启用 TLS。

关于ssl - Lighttpd:仅启用了 SSLv3,但使用了 TLSv1.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27378597/

相关文章:

php - Laravel 5.2 在 Azure 上出现奇怪的错误

python - 如何在不写入主机文件的情况下将 IP 映射到 python 中的主机名

ssl - 为什么有时 SSL 徽章上会有一个名字?

python 使用字符串列表进行加密和解密

amazon-web-services - Golang 在 AWS 中重定向到 HTTPS

C++ Qt 应用程序工作但给出警告 "qt.network.ssl: QSslSocket: cannot resolve SSLv2_server_method"

java - 不使用 javax.net.debug 的 SSL 握手细节暴露

java - Keystore的密码管理

iis - ssl 证书链

c - OpenSSL 调试 - 如何在 openssl 中转储中间 ASN.1?