Skip to content

micoli/frp-ssl-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FRP SSL proxy

What is FRP-SSL-Proxy

FRP SSL proxy is a plugin to Fast Reverse Proxy.

It is listening for new client tunnel connection from FRP client, get associate certificates from Let'sEncrypt and expose secured URL of tunnel.

A local store keep trace of previous client hosts and certificates.

It's base on RedBird NodeJS reverse proxy and is freely inspired by ACMEProxy.

Architecture

Diagram

Example

In example folder, you can find a docker-compose.yml of a tunnel server and a frp.ini for client side configuration`

Configuration

FRP Let's Encrypt proxy has the following available environment variables

Variable Name Purpose Default value
FRP_SSL_PROXY_EMAIL LetsEncrypt email [email protected]
FRP_SSL_PROXY_PRODUCTION LetsEncrypt production flag false
FRP_SSL_PROXY_HTTP_PORT Exposed Http port, used by let's encrypt challenge resolution 80
FRP_SSL_PROXY_HTTPS_PORT Exposed Https port, used by tunnels 443
FRP_SSL_PROXY_LETSENCRYPT_PORT internal let's encrypt port 9999
FRP_SSL_PROXY_SUBDOMAIN_HOST Main frp server domain tunnel.example.com
FRP_SSL_PROXY_PROXY_TARGET Internal FRP server host, used by https->http reverse proxy http://frp-server:80
FRP_SSL_PROXY_API_HTTP_PORT Internal FRP let's encrypt proxy api, used by FRP server on new conection 9002
FRP_SSL_PROXY_X_FORWARD X-Forward header flag, used by RedBird true