1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- DHPARAM_BITS=${DHPARAM_BITS:-4096}
- DHPARAM_GENERATION=${DHPARAM_GENERATION:-true}
- PREGEN_DHPARAM_FILE="/app/dhparam.pem.default"
- DHPARAM_FILE="/etc/nginx/dhparam/dhparam.pem"
- GEN_LOCKFILE="/tmp/dhparam_generating.lock"
- PREGEN_HASH=$(md5sum $PREGEN_DHPARAM_FILE | cut -d" " -f1)
- if [[ -f $DHPARAM_FILE ]]; then
- CURRENT_HASH=$(md5sum $DHPARAM_FILE | cut -d" " -f1)
- if [[ $PREGEN_HASH != "$CURRENT_HASH" ]]; then
-
- echo "Custom dhparam.pem file found, generation skipped"
- exit 0
- fi
- if [[ -f $GEN_LOCKFILE ]]; then
-
- exit 0
- fi
- fi
- if [[ $DHPARAM_GENERATION =~ ^[Ff][Aa][Ll][Ss][Ee]$ ]]; then
- echo "Skipping Diffie-Hellman parameters generation and Ignoring pre-generated dhparam.pem"
- exit 0
- fi
- cat >&2 <<-EOT
- 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.
- EOT
- cp $PREGEN_DHPARAM_FILE $DHPARAM_FILE
- touch $GEN_LOCKFILE
- (
- (
- nice -n +5 openssl dhparam -dsaparam -out $DHPARAM_FILE.tmp "$DHPARAM_BITS" 2>&1 \
- && mv $DHPARAM_FILE.tmp $DHPARAM_FILE \
- && echo "dhparam generation complete, reloading nginx" \
- && nginx -s reload
- ) | grep -vE '^[\.+]+'
- rm $GEN_LOCKFILE
- ) & disown
|