Ancrer le relais sur le VirtualHost 443, pas sur certbot
L'installateur cherchait la ligne Include des options SSL de Let's Encrypt pour savoir où poser le ProxyPass. Elle n'existe que dans les vhosts écrits par certbot : celui qu'ISPConfig génère porte ses propres directives SSLCertificate*, et le patch échouait sur sites-available. L'ancrage devient l'ouverture du bloc *:443, que les deux ont. Deux autres choses au passage : un vhost récalcitrant n'interrompt plus le script avant le rechargement d'Apache — il est signalé à la fin — et le fichier est réécrit en place plutôt que remplacé par un `mv`, qui lui aurait donné des droits neufs et lui aurait retiré son ACL. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CTvii1CYBLjD14uvuD7Kos
This commit is contained in:
parent
56c4e9ff29
commit
ca177d3e7b
1 changed files with 20 additions and 5 deletions
|
|
@ -61,23 +61,31 @@ patcher_vhost() {
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
cp -a "$fichier" "$fichier.bak-$(date +%Y%m%d%H%M)"
|
cp -a "$fichier" "$fichier.bak-$(date +%Y%m%d%H%M)"
|
||||||
# Inséré juste avant le premier Include letsencrypt, donc dans le VirtualHost *:443.
|
# Inséré en tête du VirtualHost *:443. L'ancrage précédent — la ligne Include des
|
||||||
|
# options SSL de Let's Encrypt — n'existe que dans les vhosts écrits par certbot :
|
||||||
|
# celui qu'ISPConfig génère porte ses propres directives SSLCertificate*.
|
||||||
awk '
|
awk '
|
||||||
!fait && /Include \/etc\/letsencrypt\/options-ssl-apache\.conf/ {
|
{ print }
|
||||||
|
!fait && /^[[:space:]]*<VirtualHost[^>]*:443>/ {
|
||||||
print "\t\tProxyPass /deploy http://127.0.0.1:9877/deploy"
|
print "\t\tProxyPass /deploy http://127.0.0.1:9877/deploy"
|
||||||
print "\t\tProxyPassReverse /deploy http://127.0.0.1:9877/deploy"
|
print "\t\tProxyPassReverse /deploy http://127.0.0.1:9877/deploy"
|
||||||
fait = 1
|
fait = 1
|
||||||
}
|
}
|
||||||
{ print }
|
' "$fichier" > "$fichier.tmp" || return 1
|
||||||
' "$fichier" > "$fichier.tmp" && mv "$fichier.tmp" "$fichier"
|
# Recopié dans le fichier plutôt que déplacé par-dessus : un `mv` remplacerait
|
||||||
|
# l'original par un fichier neuf, avec d'autres droits et sans son ACL.
|
||||||
|
cat "$fichier.tmp" > "$fichier" && rm -f "$fichier.tmp"
|
||||||
grep -q "127.0.0.1:9877" "$fichier" || { echo " ÉCHEC sur $fichier" >&2; return 1; }
|
grep -q "127.0.0.1:9877" "$fichier" || { echo " ÉCHEC sur $fichier" >&2; return 1; }
|
||||||
echo " $fichier : relais ajouté"
|
echo " $fichier : relais ajouté"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Sur owni, sites-enabled contient des copies et non des liens : les deux sont à traiter.
|
# Sur owni, sites-enabled contient des copies et non des liens : les deux sont à traiter.
|
||||||
|
# Un vhost récalcitrant ne doit pas emporter la suite : c'est celui de sites-enabled qui
|
||||||
|
# sert, et Apache attend d'être rechargé. On note l'échec et on le dit à la fin.
|
||||||
|
manques=""
|
||||||
for vhost in /etc/apache2/sites-enabled/100-alpinux.org.vhost \
|
for vhost in /etc/apache2/sites-enabled/100-alpinux.org.vhost \
|
||||||
/etc/apache2/sites-available/alpinux.org.vhost; do
|
/etc/apache2/sites-available/alpinux.org.vhost; do
|
||||||
patcher_vhost "$vhost"
|
patcher_vhost "$vhost" || manques="$manques $vhost"
|
||||||
done
|
done
|
||||||
|
|
||||||
if apache2ctl configtest; then
|
if apache2ctl configtest; then
|
||||||
|
|
@ -88,6 +96,13 @@ else
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -n "$manques" ]; then
|
||||||
|
echo
|
||||||
|
echo "Relais non posé dans :$manques" >&2
|
||||||
|
echo "Le déploiement fonctionne — c'est sites-enabled qui sert — mais si ISPConfig" >&2
|
||||||
|
echo "recopie un jour le vhost par-dessus, le relais sera à remettre." >&2
|
||||||
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "────────────────────────────────────────────────────────────"
|
echo "────────────────────────────────────────────────────────────"
|
||||||
echo "Reste à déclarer le webhook dans Gitea :"
|
echo "Reste à déclarer le webhook dans Gitea :"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue