Voici une marche à suivre simple pour configurer Apache avec deux noms de domaine et générer deux certificats SSL distincts :
Assurez-vous que la configuration de base d'apache contient le minimum :
vi /etc/apache2/apache.conf
Include ports.conf # Numéros des ports sur lesquels il écoute (voir commande suivante)
AccessFileName .htaccess # Active la configuration dossier par dossier avec les fichiers .htaccess
IncludeOptional conf-enabled/*.conf # Configuration supplémentaire, rien à faire de notre côté
IncludeOptional sites-enabled/*.conf # Liens symbolique sur les configurations des sites (voir plus bas)
Ecoutez sur le port 80 (HTTP) et 443 (HTTPS)
cat /etc/apache2/ports.conf
Listen 80
<IfModule ssl_module>
Listen 443
</IfModule>
Configuration des Certificats SSL :
Utilisez l'outil de génération de certificats SSL, tel que Let's Encrypt, pour créer deux certificats distincts, un pour chaque nom de domaine.
Assurez-vous de spécifier les noms de domaine appropriés lors de la génération des certificats.
sudo certbot certonly -d site-1.ch
sudo certbot certonly -d site-2.ch
Cela va créer les 2 fichiers ssl (fullchain.pem et privkey.pem) dans /etc/letsencrypt/live/site-1.ch/ et site-2.ch.
Ils seront référencés dans les fichiers de configurations plus bas.
Configuration des Fichiers de Sites Virtuels :
Créez 1 fichier de configuration de sites virtuels dans le répertoire `/etc/apache2/sites-available/` (ou votre équivalent) pour chaque nom de domaine que vous souhaitez héberger, ainsi qu'un fichier de configuration de redirection http.
Assurez-vous de spécifier les paramètres appropriés pour chaque site, y compris le chemin vers les fichiers racine, les options de sécurité, etc.
# Redirige tous le traffic HTTP vers HTTPS
sudo vi /etc/apache2/sites-available/000-http-to-https.conf
<VirtualHost *:80>
ServerAdmin webmaster@site-1.ch
DocumentRoot /var/www/html
RewriteEngine on
RewriteCond %{SERVER_NAME} =site-1.ch
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
RewriteCond %{SERVER_NAME} =site-2.ch
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
# Configuration du site principal site-1.ch
sudo vi /etc/apache2/sites-available/000-site-1-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName site-1.ch
ServerAlias www.site-1.ch
ServerAdmin webmaster@site-1.ch
DocumentRoot /var/www/html
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/site-1.ch/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/site-1.ch/privkey.pem
# Any additional directives specific to site-1.ch can go here
</VirtualHost>
</IfModule>
# Configuration du domaine secondaire site-2.ch
sudo vi /etc/apache2/sites-available/000-site-2-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName site-2.ch
ServerAlias www.site-2.ch
DocumentRoot /var/www/html
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/site-2.ch/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/site-2.ch/privkey.pem
# Any additional directives specific to site-2.ch can go here
</VirtualHost>
</IfModule>
Activation des Sites Virtuels :
Activez les sites virtuels en créant des liens symboliques vers les fichiers de configuration dans le répertoire `/etc/apache2/sites-enabled/` (ou votre équivalent).
cd /etc/apache2/sites-enabled
sudo ln -s ../sites-available/000-http-to-https.conf
sudo ln -s ../sites-available/000-site-1.conf
sudo ln -s ../sites-available/000-site-2.conf
A la place vous pouvez aussi utiliser la commande `a2ensite` suivie du nom de fichier pour chaque site.
Redémarrage d'Apache :
Une fois que vous avez terminé la configuration, redémarrez le service Apache pour appliquer les modifications.
sudo systemctl restart apache2