Builds a basic nginx server that proxies incoming SSL calls to a target host (usually another Docker container).
The following environment variables configure nginx and openssl:
DOMAIN: domain in the SSL certificate (default value:www.example.com)ALT_NAMES: optional comma-separated list of alternative domain names (e.g:example.net,example.tv)TARGET_PORT: target port for the reverse proxy (default value:80)TARGET_HOST: target host for the reverse proxy (default value:proxyapp)TARGET_HOST_HEADER: value to be used as the Host header when sending requests to the target host (defaults to the value of$TARGET_HOST)TARGET_FORWARDED_HOST_HEADER: value to be used as the X-Forwarded-Host header when sending requests to the target host (default value:$host)CLIENT_MAX_BODY_SIZE: maximum size of client uploads (default value:20M)SSL_PORT: port ngnix SSL proxy listens on
The SSL certificate is generated using a own-ROOT-ca that is available in the
directory /etc/nginx/ca, you may use Docker volumes to share the CAs with
other containers, so they can trust the installed certificate.
Your container may initialise faster than docker-ssl-proxy; therefore your start-up script should wait until the CA-cert has a non-zero size before attempting to use it.
Example for Debian / Ubuntu, assuming volume mount of ./https-proxy-ca:/etc/ssl/shared-ca:
cp /etc/ssl/shared-ca/rootCA.crt /usr/local/share/ca-certificates/
update-ca-certificates
You can also install the shared CA cert on your workstation to automatically trust all of your docker-ssl-proxy services in your browser, without having to override security warnings each time you visit or restart the services.
Example for Mac OSX:
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain https-proxy-ca/rootCA.crt
You can use existing SSL certificates for your DOMAIN
by connecting an volume onto /etc/nginx/certs with following files inside:
key.pem: private key filecert.pem: certificate file
The certificate generator will check on existing key.pem and abort.
You can get the publicly available docker image at fsouza/docker-ssl-proxy.