Я пытаюсь настроить отладку 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
Кроме того, сокат очень сладкий и острый и может делать массу других удивительных вещей. Он вам обязательно понравится, если вы его попробуете.