如何在 stunnel4 中禁用安全客户端发起的重新协商?我在带有 OpenSSL 1.0.1f 的 Ubuntu 14.04 Trusty 上使用版本 stunnel 4.53-1.1ubuntu1,在带有 OpenSSL 1.0.1e 的 Debian Wheezy 上使用版本 stunnel 4.53-1.1。
stunnel 文档列出了一个选项:
重新谈判 = 是 | 不
支持 SSL 重新协商
但不幸的是,这会导致以下错误:
第 70 行:“重新协商 = 否”:指定的选项名称在此处无效
但是这个选项在哪里有效?我为单一服务尝试了它(无论如何这毫无意义),但它也不起作用。该文档对此不是很冗长,我无法通过搜索引擎找到任何有关此的信息。
有谁知道,如何做到这一点?
我使用了以下最小配置:
pid=/stunnel4.pid
debug = 5
output = /var/log/stunnel4/stunnel.log
cert = /etc/ssl/certs/ssl-cert-snakeoil.pem
key = /etc/ssl/private/ssl-cert-snakeoil.key
renegotiation = no
[https]
accept = 443
connect = localhost:8000
这些测试表明,支持重新协商:
Qualys 的 ssltest 显示:
安全客户端发起的重新协商:支持的 DoS 危险(更多信息)
使用 openssl 手动执行,也确认:
$ openssl s_client -connect localhost:443
CONNECTED(00000003)
[...]
---
R
RENEGOTIATING
depth=0 CN = mint.home
verify error:num=18:self signed certificate
verify return:1
depth=0 CN = mint.home
verify return:1
根据stunnel ChangeLog,
renegotiation
参数是在stunnel 版本 4.54中添加的。这就解释了为什么 stunnel 4.53 抱怨替代解决方案: