fonctionnement de certbot en challenge http corrigé
This commit is contained in:
parent
e3053f90cc
commit
09259162d3
scripts/server-httpd
|
@ -1,28 +1,26 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Vérifier si le script est exécuté en root
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "❌ Ce script doit être exécuté en tant que root."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Vérifier si un domaine a été fourni
|
||||
if [[ -z "$1" ]]; then
|
||||
echo "❌ Usage : $0 <domaine>"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
DOMAIN="$1"
|
||||
|
||||
# Importer les fonctions communes
|
||||
source "$(dirname "$0")/../common/common_utils.sh"
|
||||
|
||||
# Vérifier si le script est exécuté en root
|
||||
check_root
|
||||
|
||||
# Vérification DNS
|
||||
check_dns "$DOMAIN"
|
||||
|
||||
REVERSED_DOMAIN=$(echo "$DOMAIN" | awk -F. '{for(i=NF; i>0; i--) printf "%s%s", $i, (i>1 ? "." : "")}')
|
||||
VHOST_CONF="/etc/apache2/sites-available/$REVERSED_DOMAIN.conf"
|
||||
LE_DIR="/etc/letsencrypt/live/$DOMAIN"
|
||||
BACKUP_DIR="/etc/apache2/backups"
|
||||
TEMPLATE_DIR="/etc/apache2/templates"
|
||||
TEMPLATE="$TEMPLATE_DIR/vhost-template.conf"
|
||||
CHALLENGE_DIR="/var/www/cedrix"
|
||||
PATH_URL_CEDRIXCHALLENGE="cedrix-challenge"
|
||||
CHALLENGE_DIR="/var/www/cedrix/.well-known/acme-challenge"
|
||||
PATH_URL_ACME_CHALLENGE=".well-known/acme-challenge"
|
||||
TEST_FILE="test-challenge"
|
||||
TEST_URL="http://${DOMAIN}/.well-known/${PATH_URL_CEDRIXCHALLENGE}/${TEST_FILE}"
|
||||
TEST_URL="http://${DOMAIN}/${PATH_URL_ACME_CHALLENGE}/${TEST_FILE}"
|
||||
RANDOM_CONTENT=$(openssl rand -hex 12)
|
||||
|
||||
# Créer les dossiers nécessaires
|
||||
|
@ -33,6 +31,8 @@ mkdir -p "/var/www/$REVERSED_DOMAIN"
|
|||
chown -R www-data:www-data "/var/www/$REVERSED_DOMAIN"
|
||||
chmod -R 755 "/var/www/$REVERSED_DOMAIN"
|
||||
|
||||
|
||||
|
||||
# Vérifier si le VirtualHost HTTP existe déjà
|
||||
if [[ ! -f "$VHOST_CONF" ]]; then
|
||||
echo "=== Création du fichier VirtualHost HTTP pour $DOMAIN ==="
|
||||
|
@ -44,7 +44,7 @@ if [[ ! -f "$VHOST_CONF" ]]; then
|
|||
CustomLog \${APACHE_LOG_DIR}/$REVERSED_DOMAIN-access.log combined
|
||||
|
||||
# Cedrix challenge
|
||||
Alias /.well-known/${PATH_URL_CEDRIXCHALLENGE}/ $CHALLENGE_DIR/
|
||||
Alias /${PATH_URL_ACME_CHALLENGE}/ $CHALLENGE_DIR/
|
||||
<Directory $CHALLENGE_DIR>
|
||||
Options +Indexes
|
||||
AllowOverride None
|
||||
|
@ -53,15 +53,16 @@ if [[ ! -f "$VHOST_CONF" ]]; then
|
|||
|
||||
</VirtualHost>
|
||||
EOF
|
||||
# Activer le VirtualHost et recharger Apache
|
||||
a2ensite "$REVERSED_DOMAIN"
|
||||
systemctl reload apache2
|
||||
else
|
||||
echo "✅ VirtualHost HTTP déjà configuré pour $DOMAIN."
|
||||
fi
|
||||
|
||||
# Activer le VirtualHost et recharger Apache
|
||||
a2ensite "$REVERSED_DOMAIN"
|
||||
systemctl reload apache2
|
||||
|
||||
# Vérification d'accès au dossier Let's Encrypt
|
||||
# Vérification d'accès au dossier cedric-challenge
|
||||
echo "Vérification d'accès au dossier ${PATH_URL_ACME_CHALLENGE}"
|
||||
echo "$RANDOM_CONTENT" | sudo tee "$CHALLENGE_DIR/$TEST_FILE" > /dev/null
|
||||
chmod 644 "$CHALLENGE_DIR/$TEST_FILE"
|
||||
RESPONSE=$(curl -s "$TEST_URL")
|
||||
|
@ -71,7 +72,7 @@ if [[ "$RESPONSE" == "$RANDOM_CONTENT" ]]; then
|
|||
else
|
||||
echo "❌ Le dossier n'est pas accessible depuis l'extérieur."
|
||||
echo "URL testée : $TEST_URL"
|
||||
echo "Vérifiez votre configuration Apache/Nginx et les permissions."
|
||||
echo "Vérifiez votre configuration Apache/Nginx, les firewalls, les proxy et les permissions."
|
||||
#sudo rm -f "$CHALLENGE_DIR/$TEST_FILE"
|
||||
exit 3
|
||||
fi
|
||||
|
@ -79,31 +80,6 @@ fi
|
|||
# Suppression du fichier test
|
||||
#sudo rm -f "$CHALLENGE_DIR/$TEST_FILE"
|
||||
|
||||
# Vérifier si le certificat SSL existe déjà
|
||||
if [[ -d "$LE_DIR" ]]; then
|
||||
echo "✅ Certificat SSL déjà installé pour $DOMAIN."
|
||||
else
|
||||
echo "=== Vérification avec un test dry-run de certbot ==="
|
||||
if certbot certonly --dry-run --apache --redirect -d "$DOMAIN"; then
|
||||
echo "✅ Test réussi, la configuration semble correcte."
|
||||
else
|
||||
echo "❌ Le test dry-run de certbot a échoué. Vérifiez votre configuration."
|
||||
exit 4
|
||||
fi
|
||||
|
||||
echo "=== Demande du certificat SSL avec Let's Encrypt ==="
|
||||
certbot --apache --redirect -d "$DOMAIN" --non-interactive --agree-tos --register-unsafely-without-email
|
||||
|
||||
if [[ ! -f "$LE_DIR/fullchain.pem" ]]; then
|
||||
echo "❌ Erreur lors de la génération du certificat SSL."
|
||||
exit 5
|
||||
fi
|
||||
|
||||
echo "✅ Certificat SSL installé avec succès."
|
||||
fi
|
||||
|
||||
# Recharger Apache pour prendre en compte les changements
|
||||
systemctl reload apache2
|
||||
|
||||
echo "✅ Virtual Host et certificat SSL configurés pour $DOMAIN avec succès !"
|
||||
echo "✅ Virtual Host configuré pour $DOMAIN avec succès !"
|
||||
exit 0
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
#!/bin/bash
|
||||
|
||||
DOMAIN="$1"
|
||||
|
||||
# Importer les fonctions communes
|
||||
source "$(dirname "$0")/../common/common_utils.sh"
|
||||
|
||||
# Vérifier si le script est exécuté en root
|
||||
check_root
|
||||
|
||||
# Vérification DNS
|
||||
check_dns "$DOMAIN"
|
||||
|
||||
setup_ssl "$DOMAIN"
|
|
@ -29,11 +29,8 @@ echo "🔍 Serveur détecté : $FQDN"
|
|||
# Vérification DNS
|
||||
check_dns "$FQDN"
|
||||
|
||||
# Configuration SSL
|
||||
setup_ssl "$FQDN"
|
||||
|
||||
# Configurer le VirtualHost
|
||||
echo "=== Configuration du Virtual Host et SSL pour $FQDN ==="
|
||||
echo "=== Configuration du Virtual Host pour $FQDN ==="
|
||||
./add_domain.sh "$FQDN"
|
||||
EXIT_CODE=$?
|
||||
|
||||
|
@ -42,4 +39,9 @@ if [[ $EXIT_CODE -ne 0 ]]; then
|
|||
exit $EXIT_CODE
|
||||
fi
|
||||
|
||||
# Configuration SSL
|
||||
setup_ssl "$FQDN"
|
||||
|
||||
./add_domain_ssl.sh "$FQDN"
|
||||
|
||||
echo "✅ Installation et configuration réussies !"
|
||||
|
|
Loading…
Reference in New Issue