@@ -118,16 +118,24 @@ EOF
118118 }
119119
120120 certificates_check_dhparam() {
121- print_debug "Certificates: DH Param - Checking existence of '${TLS_DH_PARAM_PATH}/${TLS_DH_PARAM_FILENAME}'"
122- if [ ! -f "${TLS_DH_PARAM_PATH}"/"${TLS_DH_PARAM_FILENAME}" ]; then
123- certificates_create_dhparam
121+ if var_true "${TLS_ENABLE_DH_PARAM}"; then
122+ print_debug "Certificates: DH Param - Checking existence of '${TLS_DH_PARAM_PATH}/${TLS_DH_PARAM_FILENAME}'"
123+ if [ ! -f "${TLS_DH_PARAM_PATH}"/"${TLS_DH_PARAM_FILENAME}" ]; then
124+ certificates_create_dhparam
125+ fi
126+ else
127+ print_debug "Certificates: DH Param - Skipping creation/check (TLS_ENABLE_DH_PARAM is not true)"
124128 fi
125129 }
126130
127131 certificates_create_dhparam() {
128- print_notice "Certificates: DH Param - Creating '${TLS_DH_PARAM_PATH}/${TLS_DH_PARAM_FILENAME}'"
129- mkdir -p "${TLS_DH_PARAM_PATH}"
130- silent openssl dhparam -out "${TLS_DH_PARAM_PATH}"/"${TLS_DH_PARAM_FILENAME}" "${TLS_DH_PARAM_KEYSIZE}"
132+ if var_true "${TLS_ENABLE_DH_PARAM}"; then
133+ print_notice "Certificates: DH Param - Creating '${TLS_DH_PARAM_PATH}/${TLS_DH_PARAM_FILENAME}'"
134+ mkdir -p "${TLS_DH_PARAM_PATH}"
135+ silent openssl dhparam -out "${TLS_DH_PARAM_PATH}"/"${TLS_DH_PARAM_FILENAME}" "${TLS_DH_PARAM_KEYSIZE}"
136+ else
137+ print_debug "Certificates: DH Param - Skipping creation (TLS_ENABLE_DH_PARAM is not true)"
138+ fi
131139 }
132140
133141 certificates_trust_ca() {
@@ -144,14 +152,17 @@ EOF
144152
145153 case "$1" in
146154 "DHPARAM" | "dhparam")
147- if var_true "${ENABLE_TLS}"; then
155+ if var_true "${ENABLE_TLS}" && var_true "${TLS_ENABLE_DH_PARAM}" ; then
148156 certificates_check_dhparam
149157 fi
150158 ;;
151159 *)
152160 if var_true "${ENABLE_TLS}"; then
153161 certificates_check_certificates "${1}"
154162 certificates_trust_ca
163+ if var_true "${TLS_ENABLE_DH_PARAM}"; then
164+ certificates_check_dhparam
165+ fi
155166 fi
156167 ;;
157168 esac
366377 certificates "${TLS_CRT_PATH}"/"${TLS_CRT_FILENAME}"
367378
368379 # Create DHParamFile if not found
369- certificates dhparam
380+ if var_true "${TLS_ENABLE_DH_PARAM}"; then
381+ certificates dhparam
382+ fi
370383
371384 if var_true "${TLS_RESET_PERMISSIONS}"; then
372385 chown ldap:ldap "${PREVIOUS_TLS_CRT_PATH}" "${PREVIOUS_TLS_KEY_PATH}" "${PREVIOUS_TLS_CA_CRT_PATH}" "${PREVIOUS_TLS_DH_PARAM_PATH}" || true
@@ -507,25 +520,34 @@ EOF
507520 chown -R ldap:ldap /assets/slapd || true
508521
509522 # Adapt TLS ldif
523+ if var_true "${TLS_ENABLE_DH_PARAM}"; then
524+ TLS_DH_PARAM_LDIF_ENABLE="-\nreplace: olcTLSDHParamFile\nolcTLSDHParamFile: ${TLS_DH_PARAM_PATH}/${TLS_DH_PARAM_FILENAME}\n-"
525+ else
526+ TLS_DH_PARAM_LDIF_ENABLE=""
527+ fi
528+ # Always attempt to delete olcTLSDHParamFile on disable
529+ TLS_DH_PARAM_LDIF_DISABLE="-\ndelete: olcTLSDHParamFile\n-"
510530 update_template /assets/slapd/config/tls/tls-enable.ldif \
511- TLS_CA_CRT_PATH \
512- TLS_CA_CRT_FILENAME \
513- TLS_CRT_PATH \
514- TLS_CRT_FILENAME \
515- TLS_KEY_PATH \
516- TLS_KEY_FILENAME \
517- TLS_DH_PARAM_PATH \
518- TLS_DH_PARAM_FILENAME \
519- TLS_CIPHER_SUITE \
520- TLS_VERIFY_CLIENT
521-
531+ TLS_CA_CRT_PATH \
532+ TLS_CA_CRT_FILENAME \
533+ TLS_CRT_PATH \
534+ TLS_CRT_FILENAME \
535+ TLS_KEY_PATH \
536+ TLS_KEY_FILENAME \
537+ TLS_DH_PARAM_PATH \
538+ TLS_DH_PARAM_FILENAME \
539+ TLS_CIPHER_SUITE \
540+ TLS_VERIFY_CLIENT \
541+ TLS_DH_PARAM_LDIF_ENABLE
522542 silent ldapmodify -Y EXTERNAL -Q -H ldapi:/// -f /assets/slapd/config/tls/tls-enable.ldif
523543
524544 [[ -f "$was_started_with_tls" ]] && rm -f "$was_started_with_tls"
525545 echo "export PREVIOUS_TLS_CA_CRT_PATH=${TLS_CA_CRT_PATH}/${TLS_CA_CRT_FILENAME}" > "${was_started_with_tls}"
526546 echo "export PREVIOUS_TLS_CRT_PATH=${TLS_CRT_PATH}/${TLS_CRT_FILENAME}" >> "${was_started_with_tls}"
527547 echo "export PREVIOUS_TLS_KEY_PATH=${TLS_KEY_PATH}/${TLS_KEY_FILENAME}" >> "${was_started_with_tls}"
528- echo "export PREVIOUS_TLS_DH_PARAM_PATH=${TLS_DH_PARAM_PATH}/${TLS_DH_PARAM_FILENAME}" >> "${was_started_with_tls}"
548+ if var_true "${TLS_ENABLE_DH_PARAM}"; then
549+ echo "export PREVIOUS_TLS_DH_PARAM_PATH=${TLS_DH_PARAM_PATH}/${TLS_DH_PARAM_FILENAME}" >> "${was_started_with_tls}"
550+ fi
529551
530552 # Enforce TLS
531553 if var_true "${TLS_ENFORCE}"; then
0 commit comments