mirror of
https://github.com/thib8956/nginx-proxy
synced 2024-11-23 04:16:31 +00:00
Merge pull request #913 from panteparak/DH-Param-Generator-Option
Add DH param generator option
This commit is contained in:
commit
8c590fc68f
24
README.md
24
README.md
@ -181,8 +181,12 @@ Finally, start your containers with `VIRTUAL_HOST` environment variables.
|
|||||||
$ docker run -e VIRTUAL_HOST=foo.bar.com ...
|
$ docker run -e VIRTUAL_HOST=foo.bar.com ...
|
||||||
### SSL Support using letsencrypt
|
### SSL Support using letsencrypt
|
||||||
|
|
||||||
[letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) is a lightweight companion container for the nginx-proxy. It allow the creation/renewal of Let's Encrypt certificates automatically.
|
[letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) is a lightweight companion container for the nginx-proxy. It allow the creation/renewal of Let's Encrypt certificates automatically.
|
||||||
|
|
||||||
|
Set `DHPARAM_GENERATION` environment variable to `false` to disabled Diffie-Hellman parameters completely. This will also ignore auto-generation made by `nginx-proxy`.
|
||||||
|
The default value is `true`
|
||||||
|
|
||||||
|
$ docker run -e DHPARAM_GENERATION=false ....
|
||||||
### SSL Support
|
### SSL Support
|
||||||
|
|
||||||
SSL is supported using single host, wildcard and SNI certificates using naming conventions for
|
SSL is supported using single host, wildcard and SNI certificates using naming conventions for
|
||||||
@ -214,7 +218,7 @@ at startup. Since it can take minutes to generate a new `dhparam.pem`, it is do
|
|||||||
background. Once generation is complete, the `dhparam.pem` is saved on a persistent volume and nginx
|
background. Once generation is complete, the `dhparam.pem` is saved on a persistent volume and nginx
|
||||||
is reloaded. This generation process only occurs the first time you start `nginx-proxy`.
|
is reloaded. This generation process only occurs the first time you start `nginx-proxy`.
|
||||||
|
|
||||||
> COMPATIBILITY WARNING: The default generated `dhparam.pem` key is 2048 bits for A+ security. Some
|
> COMPATIBILITY WARNING: The default generated `dhparam.pem` key is 2048 bits for A+ security. Some
|
||||||
> older clients (like Java 6 and 7) do not support DH keys with over 1024 bits. In order to support these
|
> older clients (like Java 6 and 7) do not support DH keys with over 1024 bits. In order to support these
|
||||||
> clients, you must either provide your own `dhparam.pem`, or tell `nginx-proxy` to generate a 1024-bit
|
> clients, you must either provide your own `dhparam.pem`, or tell `nginx-proxy` to generate a 1024-bit
|
||||||
> key on startup by passing `-e DHPARAM_BITS=1024`.
|
> key on startup by passing `-e DHPARAM_BITS=1024`.
|
||||||
@ -282,12 +286,12 @@ a 500.
|
|||||||
|
|
||||||
To serve traffic in both SSL and non-SSL modes without redirecting to SSL, you can include the
|
To serve traffic in both SSL and non-SSL modes without redirecting to SSL, you can include the
|
||||||
environment variable `HTTPS_METHOD=noredirect` (the default is `HTTPS_METHOD=redirect`). You can also
|
environment variable `HTTPS_METHOD=noredirect` (the default is `HTTPS_METHOD=redirect`). You can also
|
||||||
disable the non-SSL site entirely with `HTTPS_METHOD=nohttp`, or disable the HTTPS site with
|
disable the non-SSL site entirely with `HTTPS_METHOD=nohttp`, or disable the HTTPS site with
|
||||||
`HTTPS_METHOD=nohttps`. `HTTPS_METHOD` must be specified on each container for which you want to
|
`HTTPS_METHOD=nohttps`. `HTTPS_METHOD` must be specified on each container for which you want to
|
||||||
override the default behavior. If `HTTPS_METHOD=noredirect` is used, Strict Transport Security (HSTS)
|
override the default behavior. If `HTTPS_METHOD=noredirect` is used, Strict Transport Security (HSTS)
|
||||||
is disabled to prevent HTTPS users from being redirected by the client. If you cannot get to the HTTP
|
is disabled to prevent HTTPS users from being redirected by the client. If you cannot get to the HTTP
|
||||||
site after changing this setting, your browser has probably cached the HSTS policy and is automatically
|
site after changing this setting, your browser has probably cached the HSTS policy and is automatically
|
||||||
redirecting you back to HTTPS. You will need to clear your browser's HSTS cache or use an incognito
|
redirecting you back to HTTPS. You will need to clear your browser's HSTS cache or use an incognito
|
||||||
window / different browser.
|
window / different browser.
|
||||||
|
|
||||||
By default, [HTTP Strict Transport Security (HSTS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security)
|
By default, [HTTP Strict Transport Security (HSTS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security)
|
||||||
@ -410,7 +414,7 @@ Before submitting pull requests or issues, please check github to make sure an e
|
|||||||
To run tests, you need to prepare the docker image to test which must be tagged `jwilder/nginx-proxy:test`:
|
To run tests, you need to prepare the docker image to test which must be tagged `jwilder/nginx-proxy:test`:
|
||||||
|
|
||||||
docker build -t jwilder/nginx-proxy:test . # build the Debian variant image
|
docker build -t jwilder/nginx-proxy:test . # build the Debian variant image
|
||||||
|
|
||||||
and call the [test/pytest.sh](test/pytest.sh) script.
|
and call the [test/pytest.sh](test/pytest.sh) script.
|
||||||
|
|
||||||
Then build the Alpine variant of the image:
|
Then build the Alpine variant of the image:
|
||||||
@ -423,7 +427,7 @@ and call the [test/pytest.sh](test/pytest.sh) script again.
|
|||||||
If your system has the `make` command, you can automate those tasks by calling:
|
If your system has the `make` command, you can automate those tasks by calling:
|
||||||
|
|
||||||
make test
|
make test
|
||||||
|
|
||||||
|
|
||||||
You can learn more about how the test suite works and how to write new tests in the [test/README.md](test/README.md) file.
|
You can learn more about how the test suite works and how to write new tests in the [test/README.md](test/README.md) file.
|
||||||
|
|
||||||
|
@ -16,7 +16,8 @@ fi
|
|||||||
|
|
||||||
# Generate dhparam file if required
|
# Generate dhparam file if required
|
||||||
# Note: if $DHPARAM_BITS is not defined, generate-dhparam.sh will use 2048 as a default
|
# Note: if $DHPARAM_BITS is not defined, generate-dhparam.sh will use 2048 as a default
|
||||||
/app/generate-dhparam.sh $DHPARAM_BITS
|
# Note2: if $DHPARAM_GENERATION is set to false in environment variable, dh param generator will skip completely
|
||||||
|
/app/generate-dhparam.sh $DHPARAM_BITS $DHPARAM_GENERATION
|
||||||
|
|
||||||
# Compute the DNS resolvers for use in the templates - if the IP contains ":", it's IPv6 and must be enclosed in []
|
# Compute the DNS resolvers for use in the templates - if the IP contains ":", it's IPv6 and must be enclosed in []
|
||||||
export RESOLVERS=$(awk '$1 == "nameserver" {print ($2 ~ ":")? "["$2"]": $2}' ORS=' ' /etc/resolv.conf | sed 's/ *$//g')
|
export RESOLVERS=$(awk '$1 == "nameserver" {print ($2 ~ ":")? "["$2"]": $2}' ORS=' ' /etc/resolv.conf | sed 's/ *$//g')
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
# The first argument is the bit depth of the dhparam, or 2048 if unspecified
|
# The first argument is the bit depth of the dhparam, or 2048 if unspecified
|
||||||
DHPARAM_BITS=${1:-2048}
|
DHPARAM_BITS=${1:-2048}
|
||||||
|
GENERATE_DHPARAM=${2:-true}
|
||||||
|
|
||||||
# If a dhparam file is not available, use the pre-generated one and generate a new one in the background.
|
# If a dhparam file is not available, use the pre-generated one and generate a new one in the background.
|
||||||
# Note that /etc/nginx/dhparam is a volume, so this dhparam will persist restarts.
|
# Note that /etc/nginx/dhparam is a volume, so this dhparam will persist restarts.
|
||||||
@ -25,6 +26,11 @@ if [[ -f $DHPARAM_FILE ]]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ $GENERATE_DHPARAM =~ ^[Ff][Aa][Ll][Ss][Ee]$ ]]; then
|
||||||
|
echo "Skipping Diffie-Hellman parameters generation and Ignoring pre-generated dhparam.pem"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
cat >&2 <<-EOT
|
cat >&2 <<-EOT
|
||||||
WARNING: $DHPARAM_FILE was not found. A pre-generated dhparam.pem will be used for now while a new one
|
WARNING: $DHPARAM_FILE was not found. A pre-generated dhparam.pem will be used for now while a new one
|
||||||
is being generated in the background. Once the new dhparam.pem is in place, nginx will be reloaded.
|
is being generated in the background. Once the new dhparam.pem is in place, nginx will be reloaded.
|
||||||
|
Loading…
Reference in New Issue
Block a user