Je souhaite installer un certificat SSL auto-signé sur mon instance Amazon Elastic Compute Cloud (Amazon EC2) Ubuntu qui héberge un serveur Apache.
Résolution
Prérequis : Assurez-vous que les groupes de sécurité de l'instance autorisent le trafic sur les ports 80 et 443.
Installer le serveur Web Apache et OpenSSL
Pour installer Apache et OpenSSL sur votre serveur, exécutez la commande suivante :
sudo apt-get install apache2 openssl -y
Générer un certificat auto-signé
Procédez comme suit :
-
Le protocole SSL/TLS utilise à la fois des clés publiques et privées. Pour créer une clé privée pour votre domaine et une requête de signature de certificat (CSR), exécutez la commande suivante :
sudo openssl req -nodes -newkey rsa:2048 -keyout /etc/ssl/private/private.key -out /etc/ssl/private/request.csr
-
Pour générer un certificat SSL/TLS, exécutez la commande suivante :
sudo openssl x509 -in /etc/ssl/private/request.csr -out /etc/ssl/private/certificate.crt -req -signkey /etc/ssl/private/private.key -days 365
Vous pouvez maintenant utiliser les fichiers de clé (private.key) et de certificat (certificate.crt) avec le serveur Web Apache.
Configurer Apache pour utiliser SSL/TLS
Pour configurer Apache afin qu'il utilise le certificat auto-signé que vous avez créé, procédez comme suit :
-
Exécutez la commande suivante pour ouvrir le fichier de configuration SSL Apache par défaut :
sudo vi /etc/apache2/sites-available/default-ssl.conf
-
Utilisez les chemins suivants pour définir l'emplacement de votre certificat SSL :
Dans SSLCertificateFile, utilisez /etc/ssl/private/certificate.crt.
Dans SSLCertificateKeyFile, utilisez /etc/ssl/private/private.key.
-
Enregistrez et fermez le fichier. Puis, exécutez la commande suivante pour activer le fichier hôte virtuel :
sudo a2ensite default-ssl.conf
-
Pour ouvrir le fichier de configuration de l'hôte virtuel par défaut pour Apache, exécutez la commande suivante :
sudo vi /etc/apache2/sites-available/000-default.conf
-
Pour ajouter une redirection vers votre nom de domaine, ajoutez la ligne suivante au fichier etc/apache2/sites-available/000-default.conf :
Redirect "/" https://Server-IP
Remarque : Remplacez Server-IP par l'adresse IP de votre serveur. Il est recommandé de saisir la ligne précédente après la ligne DocumentRoot. La redirection transmet tout le trafic vers la version SSL/TLS du site.
-
Pour activer les modules SSL/TLS et d'en-tête, exécutez la commande suivante :
sudo a2enmod ssl
sudo a2enmod headers
-
Exécutez la commande suivante pour recharger le service Apache et appliquer les modifications :
sudo systemctl reload apache2
Vérifier votre serveur SSL/TLS
Procédez comme suit :
- Lancez votre navigateur Web.
- Ouvrez https://Server-IP.
Remarque : Remplacez Server-IP par l'adresse IP de votre serveur. Le navigateur Web vous redirige vers une page d'avertissement. Vous pouvez vous attendre à ce comportement car aucune autorité de certification fiable n'a signé votre certificat.
- Choisissez Aller vers l’hôte pour ouvrir la page d'accueil d'Apache. Un cadenas avec la mention non sécurisé apparaît dans la barre d'adresse du navigateur. Cela montre que le certificat n'est pas validé, mais qu'il chiffre votre connexion.
Pour plus d'informations sur la façon de configurer SSL/TLS sur Red Hat Enterprise Linux (RHEL) ou Community Enterprise Linux, consultez la section Configuration d'un serveur Web pour utiliser le protocole HTTPS sur le site Web de Red Hat. Ou, si vous utilisez Amazon Linux, consultez la section Configuration SSL/TLS pour Amazon Linux 1 (AL1), Amazon Linux 2 (AL2) ou Amazon Linux 2023 (AL2023).