Простая проверка концепции конфигурации Stunnel

1903
kaqqao

Я пытаюсь настроить stunnel для доступа к веб-службе HTTPS из клиента, использующего только HTTP. Должен быть кусок пирога, верно? У меня есть следующий stunnel.conf:

client=yes verify=0 [test-https] accept = 1337 connect = www.google.com:443 

Но когда я указываю своему браузеру, http://localhost:1337я получаю страницу с ошибкой 404 от Google:

404. That’s an error. The requested URL / was not found on this server

Я пробовал много других сайтов и всегда получаю какую-то ошибку. Например, WordPress сайты сказали бы:

Не удалось найти ни /etc/wordpress/config-localhost.php, ни /etc/wordpress/config-localhost.php. Убедитесь, что один из них существует, доступен для чтения веб-сервером и содержит правильный пароль / имя пользователя.

Кажется, я делаю что-то в корне неправильно, но каждый пример в Интернете показывает ту же конфигурацию, что и я. Может кто-нибудь, пожалуйста, помогите мне?

Я использую stunnel 5.02-1 (x86_64) в Arch Linux. Я положил свой журнал на Stunnel на Pasbin .

2

2 ответа на вопрос

3
NuTTyX

Проблема с localhostчастью. Большинство серверов не отвечает, если вы используете в localhostкачестве его имени.

Как решить эту проблему: сначала выполните nslookup на сервере, к 12.34.56.78которому вы хотите подключиться, и выберите один из нескольких IP-адресов, т. Е. (Не настоящий IP-адрес Google, только что его создали). Сконфигурируйте ваш stunnel.conf так, чтобы он указывал на этот IP-адрес:

connect = 12.34.56.78:443 

Установите на своем клиенте /etc/hosts(я предполагаю, что это тот же компьютер, что и stunnel, если нет, используйте соответствующий IP):

127.0.0.1 www.google.com 

Используйте URL http://www.google.com:1337

ПРИМЕЧАНИЕ: если вы все еще получаете ошибки, попробуйте изменить acceptс 1337 на 443.

Итак, хозяин на самом деле сохраняется. Забавно, что ни один источник не упомянул об этом ничего. Выполнение, как вы сказали, действительно помогло, и я наконец-то смог попасть на сайт https, так что спасибо (!!), и я принимаю ответ. Тем не менее, моя первоначальная цель еще не выполнена. Проблема в том, что у меня есть только IP-адрес сервера, на котором работает служба ... поэтому мне нечего добавить в файл hosts. Есть ли способ уйти в этой ситуации? kaqqao 9 лет назад 0
Кстати, теперь, когда я знал, что искать, я нашел больше упоминаний об этом, например, http://comments.gmane.org/gmane.network.stunnel.user/5696. kaqqao 9 лет назад 0
Имеет ли https: //работа с вашего сервера? Если это так, то, вероятно, будет работать, если вы используете localhost. Тем не менее, вы можете угадать имя сервера, выполнив `openssl s_client -connect: 443` и ищет строку, начинающуюся с `subject`, и ищет имя после` CN = `(это сертификат удаленного сервера). Для сайта очень редко иметь сертификат, выданный для IP, так что вы все равно можете попробовать мое предложение. NuTTyX 9 лет назад 0
да, хозяин сохраняется. некоторые хосты требуют, чтобы у вас был правильный IP-адрес и порт в заголовке HTTP-запроса «Host:», если вы не отправляете перенаправление, если у вас возникла такая проблема, вам придется связываться с правилами брандмауэра (например, iptables ), чтобы заставить это работать, или настроить локальный прокси-сервер какого-либо рода. это может быть проще для клиента, который поддерживает HTTPS. Jasen 9 лет назад 0
0
MariusMatutiae

Две проблемы:

  1. Создайте свой собственный самозаверяющий сертификат с помощью этих команд в каталоге / etc / stunnel:

    openssl genrsa 1024> stunnel.key openssl req -new -key stunnel.key -x509 -days 1000 -out stunnel.crt cat stunnel.crt stunnel.key> stunnel.pem

и убедитесь, что две строки в файле /etc/stunnel/stunnel.conf

 ;cert = /etc/stunnel/mail.pem ;key = /etc/stunnel/mail.pem 

изменены следующим образом:

 cert = /etc/stunnel/stunnel.pem key = /etc/stunnel/stunnel.pem 
  1. Вызов в вашем браузере, учитывая вашу метку [test-https], не должен быть, http://localhost:1337но вместо этого он должен бытьtest-https://localhost:1337
Все клиенты, с которыми я мог прийти, как и ожидалось, не смогли разобрать несуществующий протокол. Я попытался изменить ярлык на более очевидное «http» безрезультатно. Хотя я видел ссылки на вызов Stunnel таким образом, я думаю, что это не относится к последним версиям. Кроме того, я использую Stunnel только в режиме клиента и отключил проверку SSL, поэтому, насколько я понимаю, сертификат и ключ не должны иметь значения. kaqqao 9 лет назад 0

Похожие вопросы