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

Я пытаюсь настроить 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 на Pastbin.

2 ответа

Решение

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

Как решить эту проблему: сначала выполните nslookup на сервере, к которому вы хотите подключиться, и выберите один из нескольких IP-адресов, т.е. 12.34.56.78 (не настоящий Google IP, только что придумал) Настройте ваш 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.

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

  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
Другие вопросы по тегам