diff --git a/plugins/nginx-vhosts/commands b/plugins/nginx-vhosts/commands index a0ba50ebe..419f17934 100755 --- a/plugins/nginx-vhosts/commands +++ b/plugins/nginx-vhosts/commands @@ -161,12 +161,31 @@ EOF TEMP_DIR=$(mktemp -d) cd $TEMP_DIR tar xvf - <&0 - [[ ! -f "$TEMP_DIR/server.crt" ]] && echo "Tar archive missing server.crt" && exit 1 - [[ ! -f "$TEMP_DIR/server.key" ]] && echo "Tar archive missing server.key" && exit 1 + + CRT_FILE_SEARCH=$(find . -type f -name "*.crt") + CRT_FILE_COUNT=$(printf "%s" "$CRT_FILE_SEARCH" | grep -c '^') + if [[ $CRT_FILE_COUNT -lt 1 ]]; then + echo "Tar archive is missing .crt file" && exit 1 + elif [[ $CRT_FILE_COUNT -gt 1 ]]; then + echo "Tar archive contains more than one .crt file" && exit 1 + else + CRT_FILE=$CRT_FILE_SEARCH + fi + + KEY_FILE_SEARCH=$(find . -type f -name "*.key") + KEY_FILE_COUNT=$(printf "%s" "$KEY_FILE_SEARCH" | grep -c '^') + if [[ $KEY_FILE_COUNT -lt 1 ]]; then + echo "Tar archive is missing .key file" && exit 1 + elif [[ $KEY_FILE_COUNT -gt 1 ]]; then + echo "Tar archive contains more than one .key file" && exit 1 + else + KEY_FILE=$KEY_FILE_SEARCH + fi + mkdir -p "$DOKKU_ROOT/$APP/tls" - mv "$TEMP_DIR/server.crt" "$DOKKU_ROOT/$APP/tls/server.crt" - mv "$TEMP_DIR/server.key" "$DOKKU_ROOT/$APP/tls/server.key" + mv "$CRT_FILE" "$DOKKU_ROOT/$APP/tls/server.crt" + mv "$KEY_FILE" "$DOKKU_ROOT/$APP/tls/server.key" cd $DOKKU_ROOT rm -rf $TEMP_DIR dokku nginx:build-config $APP