Openssl

stunnel4:禁用安全客戶端發起的重新協商

  • February 13, 2015

如何在 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 ChangeLogrenegotiation參數是在stunnel 版本 4.54中添加的。這就解釋了為什麼 stunnel 4.53 抱怨

指定的選項名稱在此處無效

替代解決方案:

  1. 安裝更高版本的 stunnel deb 文件,例如 jessie(測試)或 sid(不穩定)的 stunnel
  2. 做自編譯 stunnel

引用自:https://serverfault.com/questions/667226