Commit fe29904e authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Acelera script y corrige detección de renovación

parent 0bbf4cf4
Loading
Loading
Loading
Loading
+32 −16
Original line number Diff line number Diff line
@@ -6,51 +6,67 @@ then
	exit 1
fi

docker run --rm \
fileToTestUpdate="/certs/live/${CERT_NAME}/chain.pem"
if [ -e "${fileToTestUpdate}" ]
then
	md5Before=$(md5sum "${fileToTestUpdate}")
else
	md5Before=0
fi

if ! docker run --rm \
	-v ${CERTBOT_CONFIG_VOL_NAME}:/etc/letsencrypt \
	-v ${CERTBOT_WORK_VOL_NAME}:/var/lib/letsencrypt \
	-v ${CERTBOT_LOGS_VOL_NAME}:/var/log/letsencrypt \
	-v ${ACME_VOL_NAME}:/var/www/html \
	certbot/certbot certonly \
		--expand \
		--renew-with-new-domains \
		--keep-until-expiring \
		--webroot -w /var/www/html/ \
		--cert-name ${CERT_NAME} \
		-m ${EMAIL_LIST} --agree-tos --no-eff-email \
		-d ${DOMAIN_LIST} \
		--pre-hook "rm -f /etc/letsencrypt/UPDATED" \
		--deploy-hook "touch /etc/letsencrypt/UPDATED"
		--no-self-upgrade
then
	echo "Certificates creation failed!"
	exit 1
fi

if [ -e /certs/UPDATED ]
md5After=$(md5sum "${fileToTestUpdate}")

if [ "${md5Before}" != "${md5After}" ]
then
	echo "Certificates created for domains: ${DOMAIN_LIST}"
	echo "Updating certificates in web server service: ${SERVER_SERVICE}"

	secretFiles="chain fullchain privkey"
	secretRmParams=""
	secretAddParams=""

	for secretFile in ${secretFiles}
	do
		secretName="cert-${secretFile}"
		echo "Updating service secret: ${secretName}"
		secretRmParams="${secretRmParams} --secret-rm ${secretName}"
		secretAddParams="${secretAddParams} --secret-add ${secretName}"
	done

	docker service update ${secretRmParams} ${SERVER_SERVICE}

		docker service update \
			--secret-rm ${secretName} \
			${SERVER_SERVICE}
	for secretFile in ${secretFiles}
	do
		secretName="cert-${secretFile}"
		echo "Updating service secret: ${secretName}"

		docker secret rm ${secretName}

		cat /certs/live/${CERT_NAME}/${secretFile}.pem | docker secret create \
			-l com.docker.stack.namespace ${SERVER_STACK} \
			${secretName} -

		docker service update \
			--secret-add ${secretName} \
			${SERVER_SERVICE}
	done

	echo "Certificates successfully updated"
	docker service update ${secretAddParams} ${SERVER_SERVICE}

	echo "Certificates successfully updated!"
else
	echo "Certificates creation failed!"
	exit 1
	echo "Certificates are still valid!"
fi