我正在尝试设置 Wireshark ssl 调试,为此,我尝试按照本文。
我目前正在stunnel
参加,我正在努力执行
sudo stunnel -p ps.pem -d 443 -r 8080
输出是
Clients allowed=500
stunnel 4.53 on i686-pc-linux-gnu platform
Compiled/running with OpenSSL 0.9.8k 25 Mar 2009
Threading:PTHREAD SSL:ENGINE Auth:LIBWRAP Sockets:POLL,IPv6
Reading configuration from file -p
-p: No such file or directory (2)
Cannot read configuration
Syntax:
stunnel [<filename>] ] -fd <n> | -help | -version | -sockets
<filename> - use specified config file
-fd <n> - read the config file from a file descriptor
-help - get config file help
-version - display version and defaults
-sockets - display default socket options
str_stats: 1 block(s), 3 data byte(s), 34 control byte(s)
在这种情况下,这可能不是所期望的。
如何正确使用所提供的证书的 stunnel?
答案1
从版本 4 开始,stunnel 已经改为使用新的接口,它不向后兼容。但是,debian 提供了一个包装脚本/usr/bin/stunnel
,其行为与 stunnel-3.x 类似,以便与旧安装配合使用。如果您按照旧的方式操作,这个包装脚本可以做正确的事情,但是当出现任何小错误时,包装脚本就不会处理它,来自真实二进制文件的错误消息/usr/bin/stunnel4
就会弹出来,让您感到困惑。
所以不要再使用它了。您应该man stunnel4
明确运行/usr/bin/stunnel4
二进制文件,并使用新的语法。
简要指出 stunnel 4.x 及更高版本中的不同之处,就是您无法再在命令行上指定任何内容。您所能做的和必须做的就是编写一个配置文件并将文件名作为唯一参数。
现在让我向您展示如何编写这样的配置文件。
## this is an INI'ish file
##
foreground = yes
sslVersion = all
pid = ## in most cases it is okay to leave pid empty
##
## above are global options
##
[ service_A ] ## you can have as many as you want service sections
## to listen on different ports , have different keys
## and forward to different destinations
##
client = no ##"client" set to "no" , mean stunnel speaks ssl on
## listening port , and plaintext on the remote side
## while "yes" is the reverse
verify = 0 ## do not check peer certification
cert = /etc/ssl/certs/stunnel.pem
accept = 443
connect = 80
[ another_section ]
...
然而,我强烈不建议您在这种简单情况下使用 stunnel。socat 是一个更可爱的实用程序。
socat openssl-listen:443,certificate=a.pem,fork tcp:localhost:80
除此之外,socat 非常甜美和敏锐,可以做很多其他令人惊奇的事情。如果你尝试它,你一定会爱上它。