apt install sudo
sudo apt install apache2
sudo ufw allow "Apache Full"
sudo a2enmod ssl
sudo systemctl restart apache2
mod_ssl
est maintenant activé et prêt à l’emploi.openssl
:sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
openssl
: c’est l’outil de ligne de commande utilisé pour la création et la gestion des certificats, clés et autres fichiers OpenSSL.req -x509
: cela spécifie que nous voulons utiliser la gestion des demandes de signature de certificats (CSR) X.509. X.509 est une norme d’infrastructure de clé publique à laquelle SSL et TLS adhèrent pour la gestion des clés et des certificats.-nodes
: cela indique à OpenSSL de ne pas utiliser l’option de sécurisation de notre certificat par une phrase de passe. Nous avons besoin qu’Apache soit capable de lire le fichier, sans intervention de l’utilisateur, au démarrage du serveur. Une phrase de passe empêcherait que cela se produise, puisque nous devrions la saisir après chaque redémarrage.-days 365
: cette option fixe la durée pendant laquelle le certificat sera considéré comme valide. Ici, nous l’avons fixée pour un an. De nombreux navigateurs modernes refusent les certificats dont la durée de validité dépasse un an.-newkey rsa:2048
: cette option précise que nous voulons générer un nouveau certificat et une nouvelle clé en même temps. Nous n’avons pas créé la clé nécessaire pour signer le certificat lors d’une étape précédente, nous devons donc la créer en même temps que le certificat. La partie rsa:2048
lui demande de fabriquer une clé RSA de 2048 bits.-keyout
: cette ligne indique à OpenSSL où placer le fichier de clé privée généré que nous créons.-out
: cela indique à OpenSSL où placer le certificat que nous créons.your_domain_or_ip
corresponde à ce que vous allez mettre dans la barre d’adresse de votre navigateur pour accéder au site, car une mauvaise correspondance entraînera davantage d’erreurs de sécurité.Country Name (2 letter code) [XX]:FR
State or Province Name (full name) []:Example
Locality Name (eg, city) [Default City]:Example
Organization Name (eg, company) [Default Company Ltd]:Example Inc
Organizational Unit Name (eg, section) []:Example Dept
Common Name (eg, your name or your server's hostname) []:your_domain_or_ip
Email Address []:webmaster@example.com
/etc/ssl
..conf
) dans /etc/apache2/sites-available/
et ils seront chargés la prochaine fois que le processus Apache sera rechargé ou redémarré.<Virtualhost>
et que vous devez juste y ajouter SSL, vous devrez probablement copier les lignes de configuration qui commencent par SSL
, et changer le port du VirtualHost
de 80
à 443
. Nous nous occuperons du port 80
dans la prochaine étape).sudo nano /etc/apache2/sites-available/your_domain_or_ip.conf
<VirtualHost *:443>
ServerName your_domain_or_ip
DocumentRoot /var/www/html/
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
</VirtualHost>
ServerName
en fonction de la manière dont vous avez l’intention de nommer votre serveur. Il peut s’agir d’un nom d’hôte, d’un nom de domaine complet ou d’une adresse IP. Assurez-vous que ce que vous choisissez correspond au Common Name
(nom commun) que vous avez choisi lors de l’établissement du certificat.DocumentRoot
à partir duquel les fichiers seront chargés, ainsi que les options SSL nécessaires pour faire pointer Apache vers notre certificat et notre clé précédemment créés.test.html
avec votre éditeur de texte :sudo nano /var/www/html/test.html
<h1>it worked!</h1>
a2ensite
:sudo a2ensite your_domain_or_ip.conf
sudo apache2ctl configtest
ServerName
n’est pas définie globalement. Si vous ne voulez plus voir ce message s’afficher, vous pouvez définir ServerName
en spécifiant le nom de domaine ou l’adresse IP de votre serveur dans /etc/apache2/apache2.conf
. Ceci est facultatif car le message ne fera pas de mal.Syntax OK
, votre fichier de configuration ne contient aucune erreur de syntaxe. Nous pouvons recharger Apache en toute sécurité pour que nos modifications soient appliquées :sudo systemctl reload apache2
https://
au début.it worked!
.ufw
, les commandes suivantes ouvriront les ports 80
et 443
: sudo ufw allow "Apache Full"
443
. Il est bon de répondre également sur le port 80
, même si vous voulez forcer le cryptage de tout le trafic. Mettons en place un VirtualHost
pour répondre à ces demandes non cryptées et les rediriger vers le HTTPS.sudo nano /etc/apache2/sites-available/your_domain_or_ip.conf
VirtualHost
pour faire correspondre les demandes sur le port 80
. Utilisez la directive ServerName
pour faire correspondre à nouveau votre nom de domaine ou votre adresse IP. Ensuite, utilisez Redirect
(Rediriger) pour faire correspondre les requêtes et les envoyer au VirtualHost
SSL. Veillez à inclure la barre oblique à la fin. Ajoutez un bloc VirtualHost pour rediriger les requêtes HTTP vers HTTPS comme ceci :<VirtualHost *:80>
ServerName your_domain_or_ip
Redirect / https://your_domain_or_ip/
</VirtualHost>
sudo apachectl configtest
sudo systemctl reload apache2
http://
devant l’adresse. Vous devriez être redirigé automatiquement vers https://
.