ProductPromotion
Logo

Go.Lang

made by https://0x3d.site

GitHub - rekby/lets-proxy2: Reverse proxy with automatically obtains TLS certificates from Let's Encrypt
Reverse proxy with automatically obtains TLS certificates from Let's Encrypt - rekby/lets-proxy2
Visit Site

GitHub - rekby/lets-proxy2: Reverse proxy with automatically obtains TLS certificates from Let's Encrypt

GitHub - rekby/lets-proxy2: Reverse proxy with automatically obtains TLS certificates from Let's Encrypt

Build Status Coverage Status Go Report Card GolangCI Mentioned in Awesome Go

Русскоязычное описание ниже (Russian below).

English description

Home page: https://github.com/rekby/lets-proxy2

Features:

  • Domain names for certificates get from request by SNI
  • http-01 and tls-alpn-01 validation
  • HTTPS (with certificate autoissue) and HTTP reverse proxy
  • Zero config for start usage
  • Time limit for issue certificate
  • Auto include subdomains in certificate (default: domain and www.domain)
  • Logging for stderr and/or file
  • Self rotate log files (can disable by config)
  • Can configure backend in dependence of incoming connection IP:Port
  • Custom headers to backend
  • Self check domain before issue cert (prevent DoS cert issue attack by requests with bad domains)
  • Blacklist/whitelist of domains
  • Lock certificates (force to use manual issued certificate without internal checks)
  • Optional access to internal metrics with Prometheus format

It is next generation of https://github.com/rekby/lets-proxy, rewrited from scratch.

It is improove logging and internal structure for better test coverage and simpler support. Add config support instead of many command line flags.

A reverse-proxy server to handle https requests transparently. By default Lets-proxy handles https requests to port 443 and proxies them as http to port 80 on the same IP address.

Lets-proxy adds the http headers, X-Forwarded-For which contains the IP address. It obtains valid TLS certificates from Let's Encrypt and handles https for free, in an automated way, including certificate renewal, and without warning in browsers. It needs only for domain be true public domain and has A/AAAA record to public available IP address.

The program was created for shared hosting and can handle many thousands of domains per server. It is simple to implement and doesn't need settings to start the program on personal server/vps.

Quick start:

./lets-proxy or lets-proxy.exe

Use --help key for details:

./lets-proxy --help or lets-proxy.exe --help

Русский (Russian):

Сайт программы: https://github.com/rekby/lets-proxy2

Возможности:

  • Доменные имена для выпуска сертификатов получаются из SNI, их не нужно настраивать.
  • Авторизация доменов по протоколам http-01 and tls-alpn-01
  • Проксирование HTTPS (с автовыпуском сертификата) and HTTP
  • Начать использование можно без настроек
  • Ограничение времени на получение сертификата
  • Автоматическое получение сертификата для домена и поддоменов (default: domain and www.domain)
  • Вывод логов в файл и/или на стандартный вывод ошибок
  • Самостоятельная ротация лог-файлов (отключается в настройках)
  • Можно настроить адрес перенаправления запроса в заивисмости от адреса приема запроса.
  • Настраиваемые дополнительные заголовки для передачи на внутренний сервер
  • Самостоятельная проверка возможности выпуска сертификата перед его запросом (для исключения DoS-атак путем запросов с неправильными доменами)
  • Белый/чёрный списки доменов для выпуска сертификатов
  • Фиксированный сертификат (возможность использовать самостоятельно полученный сертификат, без внутренних проверок и автообновления)
  • Опциональный доступ к внутренним метрикам в формате Prometheus

Эта программа - следующая итерация после https://github.com/rekby/lets-proxy, переписанная с нуля.

Улучшено логирование, внутреннее устройство кода - для упрощения тестирования и поддержки/развития. Добавлена поддержка файла настроек вместо огромного списка флагов.

Реверс-прокси сервер для прозрачной обработки https-запросов. Для начала использования достаточно просто запустить его на сервере с запущенным http-сервером. При этом lets-proxy начнёт слушать порт 433 и передавать запросы на порт 80 с тем же IP-адресом. К запросу будет добавляться заголовок X-Forwarded-For с IP-адресом источника запроса. Сертификаты для работы https получаются в реальном времени от letsencrypt.org. Это правильные (не самоподписанные) бесплатные сертификаты, которым доверяют браузеры. Нужно только чтобы домен был общедоступен и указывал на общедоступный IP-адрес.

Программа разрабатывается для использования на виртуальном хостинге и может работать с тысячами доменов на каждом сервере. С другой стороны она проста и не требует начальных настроек для запуска на персональном сервере.

Быстрый старт:

./lets-proxy или lets-proxy.exe

Used libraries (alphabet ordered):

Articles
to learn more about the golang concepts.

Resources
which are currently available to browse on.

mail [email protected] to add your project or resources here 🔥.

FAQ's
to know more about the topic.

mail [email protected] to add your project or resources here 🔥.

Queries
or most google FAQ's about GoLang.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory