stunnel4:禁用安全客户端发起的重新协商

stunnel4:禁用安全客户端发起的重新协商

如何在 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 抱怨

指定的选项名称在此处无效

替代解决方案:

  1. 安装更高版本的 stunnel deb 文件例如 jessie 的 stunnel(测试版)或 sid 的 stunnel(不稳定版)
  2. 自行编译 stunnel

相关内容