Dans le guide d’aujourd’hui, nous verrons comment générer un certificat SSL auto-signé sous Linux ainsi que comment les implémenter dans Apache. SSL devient de plus en plus important à mesure qu’Internet devient plus populaire. Les certificats Let’s Encrypt gratuits devenant une commodité que tout le monde peut utiliser, il n’y a aucune raison pour quiconque de ne pas utiliser SSL – sans parler des avantages du classement de recherche et du fait que les navigateurs et les moteurs de recherche feront confiance à votre site.
Cependant, vous pouvez également générer votre propre certificat SSL auto-signé pour un usage privé sur votre serveur. Une des principales raisons de faire cela est le cryptage. Bien que votre certificat personnel ne signifie rien pour les navigateurs et que les visiteurs recevront toujours un message d’avertissement s’ils visitent directement votre site, vous pouvez au moins être sûr que vous êtes protégé contre les attaques de type «man-in-the-middle». Un certificat auto-signé est une bonne première étape lorsque vous testez simplement des éléments sur votre serveur et que vous n’avez peut-être même pas encore de nom de domaine.
Commençons par notre procédure étape par étape sur comment créer un certificat SSL auto-signé sous Linux.
Table des matières
Étape 1: Créer une paire de clés RSA
La première étape dans la génération de votre propre certificat SSL auto-signé est d’utiliser le package « openssl » sur Linux / CentOS pour créer une paire de clés RSA. Pour ce faire, assurez-vous que le package est installé. Sinon, installez-le avec cette commande:
sudo yum install openssl
Il y a de fortes chances que vous l’ayez déjà disponible sur votre système – il devrait maintenant être installé malgré tout. Une fois que le package est confirmé pour être installé sur votre système, générez la paire de clés à l’aide de la commande suivante:
openssl genrsa -des3 -passout pass:x -out keypair.key 2048
Cette commande utilise un cryptage 2048 bits et génère un fichier appelé keypair.key
, comme illustré ici:
Comme vous pouvez le voir, la clé a été générée et placée dans le répertoire courant.
Étape 2: Extraire la clé privée dans le Dossier « httpd »
Le dossier /etc/httpd
est l’endroit où le système d’exploitation conserve tous les éléments importants liés à SSL. Commençons par créer un nouveau dossier pour contenir tous nos fichiers lié à notre clé privée:
sudo mkdir /etc/httpd/httpscertificate
Nous avons appelé le dossier httpscertificate
et nous y ferons référence par ce nom pour tous les autres exemples de ligne de commande. Vous pouvez nommer le dossier comme vous le souhaitez.
Pour extraire la clé privée du fichier de paire de clés que nous venons de créer, saisissez fo llowing:
openssl rsa -passin pass:x -in keypair.key -out /etc/httpd/httpscertificate/012.345.678.90.key
Remplacez la section en gras par l’adresse IP de votre propre serveur. Ou si vous pouvez accéder à votre site avec un nom de domaine, vous pouvez également l’utiliser.
Cela créera un fichier .key
dans le dossier qui nous venons de créer. Lorsque ce processus est terminé, nous pouvons supprimer le fichier de paire de clés d’origine:
rm keypair.key
Étape 3: Création d’un fichier de «demande de signature de certificat» (CSR)
Avec la clé, nous pouvons créer un fichier spécial .csr
que nous pouvons soit signer nous-mêmes, soit soumettre à une « autorité de certification ». Il est dans un format standardisé et peut être facilement généré avec notre clé de l’étape précédente. Pour le créer, tapez la commande suivante:
openssl req -new -key /etc/httpd/httpscertificate/012.345.678.90.key -out /etc/httpd/httpscertificate/012.345.678.90.csr
Encore une fois, remplacez les éléments en gras par l’adresse IP ou le nom de domaine que vous avez choisi à l’étape 2. Lorsque vous exécutez cette commande, l’outil vous demandera certaines de vos informations personnelles, telles que votre emplacement et le nom de votre organisation:
Une autorité de certification (abréviation de Certificate Authority) peut utiliser ces détails pour vérifier que vous êtes bien qui vous dites être. Essayez de remplir les champs avec autant d’informations que possible.
Une fois que vous avez terminé de saisir ces détails, l’outil terminera son travail et placera un .csr
dans le répertoire que nous avons créé à cette fin.
Étape 4: Création du fichier de certificat « .crt »
Avec le CSR, nous pouvons créer le fichier de certificat final comme Nous allons maintenant utiliser nos fichiers .csr
et .key
pour créer notre fichier .crt
:
Cela crée un fichier .crt
à l’emplacement de tous nos autres fichiers. Nous savons maintenant comment générer notre certificat SSL auto-signé. Voici une capture d’écran de les fichiers finaux de notre dossier de sécurité:
Nous devons maintenant indiquer à Apache où se trouvent ces fichiers.
Étape 5: Configurer Apache pour utiliser les fichiers
Il ne nous reste plus qu’à montrer à Apache où se trouvent nos certificats auto-signés générés. Tout d’abord, nous devons installer le package mod_ssl
avec la commande:
sudo yum install mod_ssl
Une fois cela fait, cela placera un ssl.conf
dans le dossier /etc/httpd/conf.d/
. Nous devons modifier ce fichier par défaut. Utilisez votre éditeur de texte préféré:
sudo vi /etc/httpd/conf.d/ssl.conf
Maintenant, faites défiler vers le bas jusqu’à ce que vous trouviez les lignes commençant par:
SSLCertificateFileSSL CertificateKeyFile
Modifiez les chemins par défaut avec les chemins vers le fichier de certificat et le fichier de clé respectivement, comme indiqué ici:
Enregistrez vos modifications. Maintenant, redémarrez simplement Apache avec:
sudo apachectl restart
Et vous avez terminé! Lorsque Apache redémarrera, il sera configuré pour autoriser les connexions SSL en utilisant les certificats SSL auto-signés générés.
Lorsque vous vous connectez à votre adresse IP via HTTPS la prochaine fois, vous serez averti que ce n’est pas le cas un certificat de confiance:
C’est bon. Nous le savons depuis que nous l’avons signé nous-mêmes! Continuez et vous serez redirigé vers le site Web actuel:
Ici vous pouvez voir qu’il utilise le certificat que nous avons créé. Cela ne sert à rien pour quiconque visite votre site car il ne peut pas vérifier votre identité. Mais vous savez que c’est sûr, et en plus, c’est chiffré. Aucun homme du milieu n’attaque!
Vous savez maintenant comment générer vos propres certificats SSL auto-signés et les implémenter sur votre serveur Web Apache.
Si vous faites partie de nos Managed Clients d’hébergement VPS, nous pouvons faire tout cela pour vous sans frais supplémentaires. Contactez simplement nos administrateurs système et ils répondront à votre demande dès que possible.