/ Scripts

Script - Apache

Ce script permet de générer facilement un certificat SSL avec Let's Encrypt et de créer le virtualhost Apache.

1 - Prérequis :

  • Nom de domaine ou sous-domaine DNS
  • Port 80 (TCP) et 443 (TCP) ouverts

2 - Installation des prérequis :

apt update && apt full-upgrade -y && apt install -y apache2 libapache2-mod-php

cd /opt
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt/
./letsencrypt-auto --help

3 - Création du script

nano Apache.sh

#! /bin/bash
mail_admin="admin@domaine.tld"

case "$1" in

ajouter)

echo -e "Quel est l'adresse du site internet ? \c "
read name

echo -e "Quel est l'emplacement de votre site internet ? \c"
read path

/opt/letsencrypt/letsencrypt-auto --authenticator standalone --installer apache -d $name -d www.$name --pre-hook "service apache2 stop" --post-hook "service apache2 start"

mkdir $path
echo "Le site $name arrive bientot, merci !" > $path/index.html

echo "<IfModule mod_ssl.c>

<VirtualHost *:80>
        ServerName $name
        ServerAlias www.$name
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

<VirtualHost *:443>
        ServerAdmin $mail_admin
        DocumentRoot $path

        ServerName $name
        Include /etc/letsencrypt/options-ssl-apache.conf
        ServerAlias www.$name
        SSLCertificateFile /etc/letsencrypt/live/$name/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/$name/privkey.pem
</VirtualHost>
</IfModule> " > /etc/apache2/sites-enabled/$name.vhost

service apache2 restart
echo "Le site internet $name est désormais en ligne, son répertoire se trouve dans $path !" > $path/index.html

;;

supprimer)

service apache2 stop

echo -e "Quel est l'adresse du site internet qu'il faut supprimer ? \c"
read deletename

echo -e "Quel est l'emplacement de votre site internet ? \c"
read deletepath

rm -rf /etc/letsencrypt/live/$deletename*
rm -rf /etc/letsencrypt/archive/$deletename*
rm -rf /etc/letsencrypt/renewal/$deletename*

rm -rf /etc/apache2/sites-enabled/$deletename.vhost

rm -rf $deletepath

service apache2 restart

;;

*)

echo $"Apache2 : $0 {ajouter|supprimer}"
exit 1
esac
exit 0

4 - Affectation des droits

chmod +x Apache.sh && ./Apache ajouter|supprimer

Voilà un script bien pratique !