20 нояб. 2016 г.

Lets-proxy

После некоторой работы с выписыванием сертификатов от Lets encrypt (в т.ч. написанием собственных утилит для массовой работы с доменами) я заметил, что они все (в т.ч. своё) требуют неочевидных настроек для начала работы. Тут мне пришла в голову мысль написать программу для работы с lets encrypt, которая настроек требовать не будет.


И вот результат: https://github.com/rekby/lets-proxy

Доступны исходники и скопилированные бинарники под основные платформы где это может потребоваться (windows,linux,freebsd).

Для начала работы с https в большинстве случаев достаточно просто запустить программу, никаких настроек делать не надо (но при необходимости - можно).

При запуске без параметров программа будет слушать 443 порт на всех локальных IP-адресах и при получении запроса сама выписывать через Lets encrypt валидный сертификат и дальше проксировать запрос на тот же IP-адрес порт 80 (стартандный http-сервер). При устаревании сертификатов они будут автоматически обновляться.

При добавлении/удалении доменов ничего править не придётся - сертификаты выписываются автоматически.

Единственное требование - клиентское ПО, которое осуществляет запрос должно поддерживать работу со SNI (много сертификатов на одном IP-адресе). Это нужно чтобы сервер понял к какому домену происходит обращение до начала шифрования.

Все современные браузеры этот режим поддерживают.

8 комментариев:

  1. отличная штука, спасибо!
    А как насчет http2?

    ОтветитьУдалить
    Ответы
    1. Пока только в режиме TCP, т.е. без добавления служебных заголовков вроде того что запрос проксирован и IP-адреса, с которого запрос пришел на самом деле.

      Удалить
  2. Анонимный1 июня 2017 г., 17:26

    Не совсем понятно - написано, что запускать так: "./lets-proxy", однако этого файла нет, только куча файлов go.

    ОтветитьУдалить
    Ответы
    1. Архив с уже скомпилированной программой можно скачать со страницы релизов:
      https://github.com/rekby/lets-proxy/releases

      Удалить
    2. Вот тут всегда самая свежая версия: https://github.com/rekby/lets-proxy/releases/latest

      Удалить
    3. Анонимный2 июня 2017 г., 9:40

      Спасибо, получилось!

      Удалить
  3. Этот комментарий был удален автором.

    ОтветитьУдалить
  4. Этот комментарий был удален администратором блога.

    ОтветитьУдалить