Comment installer un certificat SSL sur Apache pour CentOS 7
Introduction
Les certificats SSL sont de petits fichiers de données qui certifient la propriété d’une clé cryptographique publique. Les autorités de certification (AC) garantissent que la clé appartient à une organisation, un serveur ou une autre entité répertoriée dans le certificat.
Lorsqu’un utilisateur, via son navigateur, accède à un site Web certifié, les informations sont cryptées avec une clé publique unique. Les données ne peuvent être déchiffrées qu’en utilisant une clé privée unique située sur le serveur hôte. Ce niveau élevé de cryptage empêche les tentatives non autorisées d’accéder aux informations.
Dans ce tutoriel, découvrez comment installer un certificat SSL sur CentOS 7.
Prérequis
- Un utilisateur avec des privilèges sudo
- Accès à une ligne de commande (Ctrl-Alt-T)
- Une machine CentOS 7
- Un nom de domaine valide avec DNS pointé sur le serveur
Comment Obtenir un certificat SSL
Il existe plusieurs façons pour obtenir des Certificats:
- En utilisant une autorité de certification automatisée et gratuite telle que le projet Let’s Encrypt.
- Les autorités de certification commerciales fournissent des certificats payants (Comodo, DigiCert, GoDaddy)
- Alternativement, il est possible de créer un certificat auto-signé. Ce type de certificat est utile à des fins de test ou pour une utilisation dans un environnement de développement.
Si vous envisagez toujours le type de certificat dont vous avez besoin ou l’autorité de certification à choisir, nous avons préparé un guide complet sur les certificats SSL, les clés privées et les CSR pour vous aider dans le processus.
Remarque : Les autorités de certification de confiance ne vérifient pas les certificats auto-signés. Les utilisateurs ne peuvent pas l’utiliser pour valider automatiquement l’identité de leur serveur.
Installez le certificat SSL avec Let’s Encrypt
Let’s Encrypt est une autorité de certification gratuite, ouverte et automatisée. Il utilise l’outil logiciel certbot pour administrer automatiquement les certificats.
Certbot est un outil hautement automatisé. Assurez-vous que votre installation Apache est valide et que vous disposez d’un hôte virtuel configuré pour votre/vos domaine(s). Vous devriez d’abord lire notre tutoriel sur l’installation d’Apache sur CentOS 7 si vous avez besoin d’aide pour configurer votre pare-feu et vos hôtes virtuels.
Installation de Certbot
1. Utilisez le terminal de commande pour installer le référentiel EPEL et yum-utils:
sudo yum –y install epel-release yum-utils
2. Ensuite, installez un module prenant en charge SSL pour Apache:
sudo yum -y install mod_ssl
Dans cet exemple, la dernière version du module est déjà disponible.
3. Nous pouvons maintenant installer certbot pour Apache:
sudo yum –y install python-certbot-apache
4. Une fois l’installation terminée, vous pouvez lancer le processus d’obtention d’un certificat en entrant:
sudo certbot –apache –d yourdomain.com
Sinon, démarrez certbot en tapant:
sudo certbot
5. Le client vous demande de fournir une adresse e-mail et de lire et d’accepter les Conditions d’utilisation. Certbot répertorie ensuite les domaines disponibles sur votre serveur. Activez HTTPS pour des domaines spécifiques ou tous en laissant le champ vide.
L’invite suivante vous permet de forcer toutes les demandes à sécuriser l’accès HTTPS.
Une fois que vous avez fait vos choix, le message sur le terminal confirme que vous avez activé le cryptage pour votre domaine.
Renouvellement automatique des certificats
Les certificats émis par Let’s Encrypt sont valables 90 jours. La commande certbot renew vérifie les certificats installés et tente de les renouveler s’ils sont à moins de 30 jours de l’expiration. Pour automatiser ce processus, créez une tâche cron pour exécuter la commande périodiquement.
Utilisez votre éditeur de texte préféré pour définir la fréquence d’exécution de la commande renew:
sudo crontab -e
Entrez cette ligne et enregistrez le crontab:
* */12 * * * /usr/bin/certbot renew >/dev/null 2>&1
Comment installer un certificat SSL avec Comodo
1. La première étape consiste à soumettre une demande de signature de certificat à une Autorité de certification. Notre guide détaillé sur la façon de générer une demande de signature de certificat (CSR) avec OpenSSL est une excellente ressource si vous avez besoin d’aide pour ce processus.
2. Une fois qu’une autorité de certification certifie votre demande, vous recevez une copie de votre certificat SSL. Vous pouvez maintenant installer le certificat sur votre serveur CentOS 7.
Cet exemple montre comment installer un certificat d’un fournisseur SSL payant, Comodo.
3. Une fois que Comodo a vérifié votre demande CSR, téléchargez les fichiers SSL. Copiez-les (ComodoRSACA.crt) et le certificat principal (yourdomain.crt), dans le répertoire de votre serveur Apache. La clé privée générée lors du processus CSR (Demande de signature de certificat) doit être sur le même serveur.
Configurer des hôtes virtuels pour SSL
Après avoir certifié avec succès le domaine et placé les fichiers clés sur le serveur, l’étape suivante consistera à configurer les hôtes virtuels pour afficher le certificat.
1. Accéder au fichier de configuration SSL:
sudo nano /etc/httpd/conf.d/ssl.conf
2. Modifiez le fichier de configuration pour pointer vers les fichiers corrects sur votre serveur.
Décommentez les lignes suivantes sous la section <VirtualHost_default_:443 > et entrez les chemins de fichier corrects:
- DocumentRoot »/var/www/yourdomain.com »
- Nom du serveur yourdomain.com: 443
- SSLEngine on
- SSLCertificateFile – Le chemin d’accès de votre fichier de certificat.
- SSLCertificateKeyFile – Le chemin de votre fichier de clé.
- SSLCertificateChainFile – Le fichier de certificat COMODO intermédiaire.
3. Après avoir apporté les modifications nécessaires, quittez le fichier (Ctrl + X) et appuyez sur y pour enregistrer les modifications.
4. Testez votre configuration Apache avant de redémarrer. Assurez-vous que la syntaxe est correcte en tapant:
sudo apachectl configtest
5. Une fois que le système a confirmé que la syntaxe est correcte, redémarrez Apache:
sudo systemctl restart httpd
Vous avez maintenant configuré votre serveur Apache pour utiliser le certificat SSL.
Comment créer un certificat SSL auto-signé
Un certificat auto-signé est utile pour les tests, dans les environnements de développement et sur un intranet.
1. Comme pour Let’s Encrypt, le module Apache mod_ssl prend en charge le cryptage SSL:
sudo yum –y install mod_ssl
2. Créez un nouveau répertoire pour stocker la clé privée:
sudo mkdir /etc/ssl/privatekey
3. Restreindre l’accès à ce répertoire uniquement à l’utilisateur root:
sudo chmod 700 /etc/ssl/privatekey
4. Générez un certificat auto-signé à l’aide de cette commande OpenSSL:
sudo openssl req -x509 -new -newkey rsa:2048 -nodes -days 365 -keyout /etc/ssl/privatekey/ yourdomain.key -out /etc/ssl/certs/yourdomain.csr
Ceci est un aperçu détaillé des éléments:
- openssl – active le logiciel OpenSSL
- req – indique que nous avons besoin d’un CSR
- – x509 – spécifie d’utiliser la demande de signature X.509
- – new-newkey – génère une nouvelle clé
- rsa:2048 – générer une clé mathématique RSA de 2048 bits
- – nodes – no DES, ce qui signifie ne pas chiffrer la clé privée dans un fichier PKCS #12
- – jours 365 – nombre de jours pendant lesquels le certificat est valide pour
- – keyout – indique le domaine pour lequel vous générez une clé pour
- – out – spécifie le nom du fichier contenant le CSR
Remarque : Assurez-vous de remplacer votre domaine par votre domaine réel.
5. Le système lance un questionnaire à remplir.
Entrez vos informations dans les champs disponibles:
- Nom du pays – utilisez un code de pays à 2 lettres
- État – l’état où le propriétaire du domaine est incorporé dans
- Localité – la ville où le propriétaire du domaine est incorporé dans
- Nom de l’organisation – une entité propriétaire du domaine
- Nom de l’unité organisationnelle – le département ou le groupe de votre organisation qui travaille avec des certificats
- Nom commun – le plus souvent, le nom de domaine complet (FQDN)
- Adresse e–mail – adresse e–mail de contact
- Mot de passe du défi – définissez un mot de passe facultatif pour votre paire de clés
L’image représente un exemple de questionnaire dans CentOS 7.
6. Procédez à la configuration de l’hôte virtuel pour afficher le nouveau certificat. Le processus est identique aux étapes décrites au chapitre 2, Configurer les hôtes virtuels pour SSL.
7. Testez votre configuration Apache avant de redémarrer. Pour vous assurer que la syntaxe est correcte, tapez:
sudo apachectl configtest
8. Une fois que le système a confirmé que la syntaxe est correcte, redémarrez Apache:
sudo systemctl restart httpd
Vous avez maintenant configuré votre serveur Apache pour utiliser votre certificat SSL auto-signé et vous devriez pouvoir visiter votre site avec SSL activé.
Comment vérifier si un certificat SSL est valide ?
Pour vérifier si un certificat SSL est valide, vous pouvez mettre à disposition des services publics, tels que le test du serveur SSL. Confirmez le statut de votre certificat et vérifiez si tous les détails sont corrects.
Vous pouvez également accéder à votre site Web en utilisant https:// pour voir si le certificat SSL est visible. Le cadenas vert indique que la couche supplémentaire de cryptage est présente.
Conclusion
En suivant ces instructions, vous avez sécurisé le trafic sur votre site Web de distribution CentOS Linux en implémentant un certificat SSL.
Votre nouveau certificat SSL garantit que toutes les données transitant entre le serveur Web et les navigateurs restent privées et sécurisées.