Line 1... |
Line 1... |
1 |
#!/bin/bash
|
1 |
#!/bin/bash
|
2 |
#
|
2 |
#
|
3 |
# $Id: alcasar-letsencrypt.sh 3182 2024-03-06 23:39:43Z rexy $
|
3 |
# $Id: alcasar-letsencrypt.sh 3300 2025-09-23 16:11:12Z rexy $
|
4 |
#
|
4 |
#
|
5 |
# alcasar-letsencrypt.sh
|
5 |
# alcasar-letsencrypt.sh
|
6 |
# by Tom HOUDAYER & Rexy
|
6 |
# by Tom HOUDAYER & Rexy
|
7 |
#
|
7 |
#
|
8 |
# This script is distributed under the Gnu General Public License (GPL)
|
8 |
# This script is distributed under the Gnu General Public License (GPL)
|
Line 105... |
Line 105... |
105 |
################################################################################
|
105 |
################################################################################
|
106 |
# CRON TASK #
|
106 |
# CRON TASK #
|
107 |
################################################################################
|
107 |
################################################################################
|
108 |
cron_task() {
|
108 |
cron_task() {
|
109 |
if [ $(grep '^dateNextRenewal=' $CONF_FILE | cut -d'=' -f2) -le $(date +%s) ]; then
|
109 |
if [ $(grep '^dateNextRenewal=' $CONF_FILE | cut -d'=' -f2) -le $(date +%s) ]; then
|
110 |
logger -t alcasar-letsencrypt "Launch CRON task."
|
110 |
logger -t alcasar-letsencrypt "Warning : L.E. certificate must be renewed."
|
- |
|
111 |
# here : send a warning Email to @admin if exists (with the hostname of this ALCASAR)
|
111 |
renew
|
112 |
# renew (discussion if needed or not - look at the challenge longevity)
|
112 |
fi
|
113 |
fi
|
113 |
}
|
114 |
}
|
114 |
|
115 |
|
115 |
################################################################################
|
116 |
################################################################################
|
116 |
# HANDLE CLIENT RESPONSE #
|
117 |
# HANDLE CLIENT RESPONSE #
|
Line 127... |
Line 128... |
127 |
echo "Domain: '_acme-challenge.$DOMAIN'"
|
128 |
echo "Domain: '_acme-challenge.$DOMAIN'"
|
128 |
echo "TXT value: '$challenge'"
|
129 |
echo "TXT value: '$challenge'"
|
129 |
elif [ $(cat $responseFile | grep "Cert success." -c) -ne 0 ]; then
|
130 |
elif [ $(cat $responseFile | grep "Cert success." -c) -ne 0 ]; then
|
130 |
sed -i "s/^challenge=.*/challenge=/" $CONF_FILE
|
131 |
sed -i "s/^challenge=.*/challenge=/" $CONF_FILE
|
131 |
sed -i "s/^dateIssued=.*/dateIssued=$(date +%s)/" $CONF_FILE
|
132 |
sed -i "s/^dateIssued=.*/dateIssued=$(date +%s)/" $CONF_FILE
|
132 |
sed -i "s/^dateNextRenewal=.*/dateNextRenewal=$(date +%s -d '2 months - 3 days')/" $CONF_FILE
|
133 |
sed -i "s/^dateNextRenewal=.*/dateNextRenewal=$(date +%s -d '3 months - 15 days')/" $CONF_FILE
|
133 |
install_cert
|
134 |
install_cert
|
134 |
logger -t alcasar-letsencrypt "Certificate \"$DOMAIN\" imported."
|
135 |
logger -t alcasar-letsencrypt "Certificate \"$DOMAIN\" imported."
|
135 |
echo "Certificate imported."
|
136 |
echo "Certificate imported."
|
136 |
[ -z $DNS_API ] && echo "Note: you can delete the TXT record."
|
137 |
[ -z $DNS_API ] && echo "Note: you can delete the TXT record."
|
137 |
elif [ $(cat $responseFile | grep "Domains not changed." -c) -ne 0 ]; then
|
138 |
elif [ $(cat $responseFile | grep "Domains not changed." -c) -ne 0 ]; then
|