stunnel 版本 4.53 表示 SSL 服务器在 Windows 7 上需要证书

stunnel 版本 4.53 表示 SSL 服务器在 Windows 7 上需要证书

我一直在使用 stunnel 以前的版本,一切顺利。它显然没有 SSL 服务器模式下的证书功能。这没关系,但对我们来说没有必要,因为我们只是运行本地主机服务器来隧道连接到远程服务器。

无论如何,我已经阅读了常见问题解答教程等与此相关的内容并尝试了所有方法。无论我对证书或密钥设置做什么,它仍然会出现相同的错误,这是完整的输出......

No limit detected for the number of clients
stunnel 4.53 on x86-pc-mingw32-gnu platform
Compiled/running with OpenSSL 0.9.8s-fips 4 Jan 2012
Threading:WIN32 SSL:+ENGINE+OCSP+FIPS Auth:none Sockets:SELECT+IPv6
Reading configuration from file stunnel.conf
FIPS mode is enabled
Compression not enabled
Snagged 64 random bytes from C:/.rnd
Wrote 0 new random bytes to C:/.rnd
PRNG seeded successfully
Initializing service section [FIX]
Section FIX: SSL server needs a certificate

Server is down

以下是 stunnel.conf 文件的内容:

; Certificate/key is needed in server mode and optional in client mode
cert = stunnel.pem
;key = stunnel.pem

; Disable support for insecure SSLv2 protocol
options = NO_SSLv2

[FIX]
accept  = 127.0.0.1:5679
connect = 216.52.236.112:5680
TIMEOUTconnect = 5

[FIXLIVE]
accept  = 127.0.0.1:5680
connect = 216.52.236.185:51581
TIMEOUTconnect = 5

请注意,stunnel 安装时附带一个 stunnel.pem 文件。我尝试取消注释密钥的配置行。还按照说明使用 openssh 重新生成了密钥。

我尝试使用证书文件的绝对路径。

什么都无所谓。这是 Stunnel 的缺陷吗?还是我做错了什么?

答案1

添加client = yes到每个服务以修复该错误消息。

您还需要设置选项来设置适当的 SSL 安全性;请参见下文。

# Enable proper SSL security.  Without this, you are completely insecure!
verify = 2
CAfile = /etc/ssl/certs/ca-certificates.crt
options = NO_SSLv2

[FIX]
client = yes
accept  = 127.0.0.1:5679
connect = 216.52.236.112:5680
TIMEOUTconnect = 5

[FIXLIVE]
client = yes
accept  = 127.0.0.1:5680
connect = 216.52.236.185:51581
TIMEOUTconnect = 5

答案2

Stunnel 总是想要验证服务器证书(所有 SSL 客户端都这样)——如果您不关心中间人攻击(ISP、坏人、恶意 ISP 等),您可以关闭证书检查。否则,您必须在 stunnel 中配置“信任”,方法是向其提供服务器证书的副本或您信任的链中的其他内容(即,中间 CA 或根 CA,它们优于服务器用于标识自身的服务器证书)。您需要设置的配置变量是:CAPath、CAFile。

相关内容