Refactor start.letsencrypt.sh to enhance certificate issuance logic and improve retry handling
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
gyurix
2025-11-04 16:02:04 +01:00
parent 513b8ecde5
commit 6433db437c

View File

@@ -59,20 +59,30 @@ start_letsencrypt() {
LETSENCRYPT_INSTALLED=true
fi
if [ -f /acme.sh/$DOMAIN/fullchain.pem ]; then
ISSUER=$(openssl x509 -in /acme.sh/$DOMAIN/fullchain.pem -text -noout | grep -w CN | grep Issuer | cut -d '=' -f2)
SUBJECT=$(openssl x509 -in /acme.sh/$DOMAIN/fullchain.pem -text -noout | grep -w CN | grep Subject | cut -d '=' -f2)
if [ "$ISSUER" == "$SUBJECT" ]; then
echo "Self signed certificate found"
sh /root/.acme.sh/acme.sh $L_S $EK $EHK --issue --standalone --keylength 4096 -d $DOMAIN --cert-file /acme.sh/$DOMAIN/cert.pem --key-file /acme.sh/$DOMAIN/key.pem --fullchain-file /acme.sh/$DOMAIN/fullchain.pem >$LOG_FILE 2>&1
RESPONSE=$?
echo "OUTPOUT: $RESPONSE"
if [[ "$(echo $RESPONSE)" == "1" ]]; then
fi
else
sh /root/.acme.sh/acme.sh $L_S $EK $EHK --issue --standalone --keylength 4096 -d $DOMAIN --cert-file /acme.sh/$DOMAIN/cert.pem --key-file /acme.sh/$DOMAIN/key.pem --fullchain-file /acme.sh/$DOMAIN/fullchain.pem >$LOG_FILE 2>&1
RESPONSE=$?
echo "OUTPOUT: $RESPONSE"
fi
if [[ "$(echo $RESPONSE)" == "1" && "$(cat $LOG_FILE | grep force)" == "" ]]; then
for retries in $(seq 0 $((RESTART + 1))); do
if [[ $retries -le $RESTART ]]; then
# Check certificate issuer
ISSUER=$(openssl x509 -in /acme.sh/$DOMAIN/fullchain.pem -text -noout | grep -w CN | grep Issuer | cut -d '=' -f2)
SUBJECT=$(openssl x509 -in /acme.sh/$DOMAIN/fullchain.pem -text -noout | grep -w CN | grep Subject | cut -d '=' -f2)
if [ "$ISSUER" == "$SUBJECT" ]; then
echo "Self signed certificate found"
sh /root/.acme.sh/acme.sh $L_S $EK $EHK --issue --standalone --keylength 4096 -d $DOMAIN --cert-file /acme.sh/$DOMAIN/cert.pem --key-file /acme.sh/$DOMAIN/key.pem --fullchain-file /acme.sh/$DOMAIN/fullchain.pem >>$LOG_FILE 2>&1
RESPONSE=$?
if [[ "$(echo $RESPONSE)" == "1" ]]; then
if [ "$(echo $RESPONSE)" == "1" ]; then
sleep $TIMEOUT
echo "Restarting number is only: "$retries" so try again"
else
@@ -82,10 +92,7 @@ start_letsencrypt() {
create_json $STATUS
break
fi
else
sleep $TIMEOUT
echo "Restarting number is only: "$retries" so try again"
fi
else
echo "Reached retrying limit: "$RESTART" ,giving up"
echo "Creating log json from letsencrypt output"