diff options
Diffstat (limited to 'satellit_installer/static_files/lighttpd-auto-ssl.sh')
-rwxr-xr-x | satellit_installer/static_files/lighttpd-auto-ssl.sh | 43 |
1 files changed, 34 insertions, 9 deletions
diff --git a/satellit_installer/static_files/lighttpd-auto-ssl.sh b/satellit_installer/static_files/lighttpd-auto-ssl.sh index 9365a33..0f88864 100755 --- a/satellit_installer/static_files/lighttpd-auto-ssl.sh +++ b/satellit_installer/static_files/lighttpd-auto-ssl.sh @@ -1,15 +1,22 @@ #!/bin/bash -declare -rg CERT="/etc/lighttpd/server.pem" +declare -rg PUBLIC_BOTH="/etc/lighttpd/server.pem" declare -rg CHAIN="/etc/lighttpd/chain.pem" declare -rg DHPARAM="/etc/lighttpd/dhparam.pem" declare -rg REDIR_FLAG="/etc/lighttpd/redirect.flag" +declare -rg INTERNAL_BOTH="/etc/ssl/openslx/lighttpd/server.pem" +declare -g INTERNAL_CHAIN="/etc/ssl/openslx/lighttpd/ca-chain.pem" if ! [ -s "$DHPARAM" ] && ! ps aux | grep 'openssl dhparam' | grep -q -v grep; then - openssl dhparam -out "$DHPARAM" 2048 >/dev/null 2>&1 + openssl dhparam -out "$DHPARAM" 2048 &>/dev/null & fi -[ -s "$CERT" ] || exit 0 +/opt/openslx/slx-cert >&2 & + +wait + +[ -s "$INTERNAL_CHAIN" ] || INTERNAL_CHAIN= +readonly INTERNAL_CHAIN cat <<HEREDOC \$SERVER["socket"] == ":443" { @@ -17,9 +24,6 @@ cat <<HEREDOC ssl.engine = "enable" ssl.disable-client-renegotiation = "enable" - # pemfile is cert+privkey, ca-file is the intermediate chain in one file - ssl.pemfile = "$CERT" - # ECDH/ECDHE ciphers curve strength (see "openssl ecparam -list_curves") ssl.ec-curve = "secp384r1" # Compression is by default off at compile-time, but use if needed @@ -35,10 +39,31 @@ cat <<HEREDOC ssl.use-sslv3 = "disable" ssl.honor-cipher-order = "enable" ssl.cipher-list = "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS" + + # pemfile is cert+privkey, ca-file is the intermediate chain in one file HEREDOC -[ -s "$CHAIN" ] && echo " ssl.ca-file = \"$CHAIN\"" -[ -s "$DHPARAM" ] && echo " ssl.dh-file = \"$DHPARAM\"" -echo "}" +if [ -s "$PUBLIC_BOTH" ]; then + echo " ssl.pemfile = \"${PUBLIC_BOTH}\"" + [ -s "$CHAIN" ] && echo " ssl.ca-file = \"${CHAIN}\"" +elif [ -s "$INTERNAL_BOTH" ]; then + echo " ssl.pemfile = \"${INTERNAL_BOTH}\"" + echo " ssl.ca-file = \"${INTERNAL_CHAIN}\"" +fi + +[ -s "$DHPARAM" ] && echo " ssl.dh-file = \"${DHPARAM}\"" + +# VHost for server.bwlehrpool +if [ -s "${INTERNAL_BOTH}" ]; then + cat <<HEREDOC + \$HTTP["host"] == "satellite.bwlehrpool" { + ssl.pemfile = "${INTERNAL_BOTH}" + ssl.ca-file = "${INTERNAL_CHAIN}" + } +HEREDOC + # +fi + +echo "}" # End main block [ -f "$REDIR_FLAG" ] && cat <<"HEREDOC" $HTTP["scheme"] == "http" { |