И вот результат: https://github.com/rekby/lets-proxy
Доступны исходники и скопилированные бинарники под основные платформы где это может потребоваться (windows,linux,freebsd).
Для начала работы с https в большинстве случаев достаточно просто запустить программу, никаких настроек делать не надо (но при необходимости – можно).
При запуске без параметров программа будет слушать 443 порт на всех локальных IP-адресах и при получении запроса сама выписывать через Lets encrypt валидный сертификат и дальше проксировать запрос на тот же IP-адрес порт 80 (стартандный http-сервер). При устаревании сертификатов они будут автоматически обновляться.
При добавлении/удалении доменов ничего править не придётся – сертификаты выписываются автоматически.
Единственное требование – клиентское ПО, которое осуществляет запрос должно поддерживать работу со SNI (много сертификатов на одном IP-адресе). Это нужно чтобы сервер понял к какому домену происходит обращение до начала шифрования.
Все современные браузеры этот режим поддерживают.
7 комментариев на «“Lets-proxy”»
отличная штука, спасибо!
А как насчет http2?
Пока только в режиме TCP, т.е. без добавления служебных заголовков вроде того что запрос проксирован и IP-адреса, с которого запрос пришел на самом деле.
Сейчас http2 уже должен работать
Не совсем понятно – написано, что запускать так: "./lets-proxy", однако этого файла нет, только куча файлов go.
Архив с уже скомпилированной программой можно скачать со страницы релизов:
https://github.com/rekby/lets-proxy/releases
Вот тут всегда самая свежая версия: https://github.com/rekby/lets-proxy/releases/latest
Спасибо, получилось!