我正在嘗試設定 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 非常可愛、敏銳,還能做很多其他令人驚奇的事。如果您嘗試一下,您一定會喜歡它。