/ 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 qui va bien.

1 - Prérequis :

  • Nom de domaine

2 - Installation des prérequis :

sudo apt update && sudo apt install -y apache2 libapache2-mod-php

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

3 - Création du script

sudo vi 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

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

sudo 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

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

;;

supprimer)

sudo systemctl stop apache2

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

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

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

sudo rm -rf $deletepath

sudo systemctl restart apache2

;;

*)

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

4 - Affectation des droits

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

Vous avez maintenant un script clé en main pour configurer plusieurs sites internet sans trop se prendre la tête, toutefois le script est évoluable du fait que celui-ci est très simpliste, mais efficace.