From 6388f366879b72423e51489819ae165c4be79c0e Mon Sep 17 00:00:00 2001 From: gyurix Date: Thu, 2 Sep 2021 11:50:20 +0000 Subject: [PATCH] Minor bugfixes. --- scripts/check_certificates.sh | 35 ++++++++++++++++++++++++++-------- scripts/nginx_config_create.sh | 1 - 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/scripts/check_certificates.sh b/scripts/check_certificates.sh index 24cbad4..418be99 100755 --- a/scripts/check_certificates.sh +++ b/scripts/check_certificates.sh @@ -14,14 +14,26 @@ service_exec="docker run --rm \ -v /usr/bin/docker:/usr/bin/docker:ro registry.format.hu/setup /scripts/service-exec" letsencrypt_certificates() { -$service_exec /services/letsencrypt.json start + + echo "XYZ: "$PROXY_SERVICE_FILE" "$ROLE + + # Check services with running containers by roles + for CONTAINER in $(jq -r --arg ROLE $ROLE '.containers[] | select(.ROLES==$ROLE)' $PROXY_SERVICE_FILE | jq -r .NAME) ; do + UP=$(docker ps | grep $CONTAINER | grep Up | wc -l) + RUNNING_CONTAINERS=$((RUNNING_CONTAINERS + UP)) + done; + + # In case of no running proxies found, try to start the service + if [[ "$RUNNING_CONTAINERS" -eq 0 ]] ; then + echo "No running proxies found, create self signed cetificate"; + create_self_signed_certificate; + fi; + + $service_exec /services/letsencrypt.json start } create_self_signed_certificate() { -# generate dhparam file -openssl dhparam -dsaparam -out $DOMAIN_CERT_DIR/dhparam.pem 4096; - # generate key openssl req -x509 -newkey rsa:4096 -keyout $DOMAIN_CERT_DIR/key.pem -out $DOMAIN_CERT_DIR/cert.pem -days 365 -sha256 -nodes -subj "/CN=$DOMAIN"; cp -a $DOMAIN_CERT_DIR/cert.pem $DOMAIN_CERT_DIR/fullchain.pem; @@ -31,11 +43,17 @@ cp -a $DOMAIN_CERT_DIR/cert.pem $DOMAIN_CERT_DIR/fullchain.pem; if [ ! -d "$DOMAIN_CERT_DIR" ]; then echo "$DOMAIN not contains certificates, creates new." mkdir -p $DOMAIN_CERT_DIR; - CURL_CHECK="curl -s -o /dev/null -w "%{http_code}" https://$LETSENCRYPT_URL"; +fi - if [[ "$(eval $CURL_CHECK)" != "200" ]] ; then - create_self_signed_certificate; - fi +if [ ! -f "$DOMAIN_CERT_DIR/dhparam.pem" ]; then + # generate dhparam file + openssl dhparam -dsaparam -out $DOMAIN_CERT_DIR/dhparam.pem 4096; +fi + +CURL_CHECK="curl -s -o /dev/null -w "%{http_code}" https://$LETSENCRYPT_URL"; + +if [[ "$(eval $CURL_CHECK)" != "200" ]] ; then + create_self_signed_certificate; else file="$DOMAIN_CERT_DIR/letsencrypt" { @@ -44,3 +62,4 @@ else letsencrypt_certificates; fi + diff --git a/scripts/nginx_config_create.sh b/scripts/nginx_config_create.sh index 460aded..8a84ead 100755 --- a/scripts/nginx_config_create.sh +++ b/scripts/nginx_config_create.sh @@ -27,7 +27,6 @@ if [[ $HTTPS_PORT != "" ]]; then /scripts/check_certificates.sh "$DOMAIN"; fi -echo "3"; echo "created domain name: "$DOMAIN; file="/tmp/$DOMAIN.conf"