如何在 stunnel4 中禁用安全客户端发起的重新协商?我在 Ubuntu 14.04 Trusty 上使用带有 OpenSSL 1.0.1f 的 stunnel 4.53-1.1ubuntu1 版本,在 Debian Wheezy 上使用带有 OpenSSL 1.0.1e 的 stunnel 4.53-1.1 版本。
这stunnel 文档列出了一个选项:
重新谈判 = 是 | 否
支持 SSL 重新协商
但不幸的是,这会导致以下错误:
第 70 行:“renegotiation = no”:此处指定的选项名称无效
但是这个选项在哪里有效?我尝试过对单个服务进行此操作(无论如何这都没有意义),但它也不起作用。文档对此不是很详细,而且我无法通过搜索引擎找到有关此信息的任何信息。
有人知道该如何做吗?
我使用了以下最小配置:
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
答案1
根据stunnel 变更日志,renegotiation
参数已添加于stunnel 版本 4.54。这解释了为什么 stunnel 4.53 抱怨
指定的选项名称在此处无效
替代解决方案:
- 安装更高版本的 stunnel deb 文件例如 jessie 的 stunnel(测试版)或 sid 的 stunnel(不稳定版)
- 自行编译 stunnel