Comment générer des certificats auto-signés OpenSSL sous Linux CentOs/RedHat pour Apache/httpd
Petit tuto pour montrer comment on génère des certificats auto-signés. C’est désormais encore plus simple avec les Makefile mise à disposition par Linux CentOS/RedHat. Je présente ici de manière succincte la manière de générer un certificat auto-signé. Mais avant je vais expliquer en pratique comment fonctionne ces histoires de certificats.
Comment fonctionne un certificat
SSL ou TLS son successeur sont des protocoles de sécurisation des échanges sur internet. Lorsque vous vous connectez sur votre site favori, par exemple, vous pouvez voir que ce protocole est activé lorsqu’il y a un cadenas à gauche de https://. Votre navigateur va envoyer une demande de connexion sécurisée auprès du site web. Le site web répond en envoyant à vote navigateur son certificat. Ce dernier contient une clé publique, les informations du site (nom, pays,mail, etc.) et une signature numérique. Le navigateur va alors essayer de vérifier la signature numérique du certificat du site en utilisant les clés publiques contenues dans les certificats des autorités de certifications (AC) intégrés par défaut dans le navigateur.
- Cas 1: une d’entre elle fonctionne, votre navigateur trouve alors le nom de l’autorité de certification qui a signé le certificat envoyé par le serveur. Il vérifie que celui-ci n’est pas expiré puis envoie une demande à cette autorité pour vérifier que le certificat du serveur n’a pas été révoqué.
- Sous cas 1 , le certificat est expiré, un message d’avertissement s’affiche vous indiquant que l’identité du serveur n’a pas été vérifiée par une autorité de certification et qu’il peut donc s’agir potentiellement d’un site frauduleux, Réussite quand même !!!
- Sous cas 2, le certificat est valide , Réussite !!!!
- Cas 2 aucune ne fonctionne, votre navigateur tente de vérifier la signature numérique du certificat du serveur à l’aide de la clé publique contenue dans celui-ci.
- Sous cas 1 Échec, le certificat est invalide, pas de connexion possible.
- Sous cas 2 Réussite, le serveur web a lui-même signé son certificat. Un message d’avertissement s’affiche vous indiquant que l’identité du serveur n’a pas été vérifiée par une autorité de certification et qu’il peut donc s’agir potentiellement d’un site frauduleux. C’est ce cas que nous allons étudier à travers cet article.
Ensuite, votre navigateur génère une clé de session via un chiffrement symétrique en utilisant la clé publique contenue dans le certificat. Puis, il transmet cette clé de session au serveur. Le serveur déchiffre alors la clé de session envoyée par votre navigateur grâce à sa clé privée. D’où l’intérêt de bien protéger cette clé privée !!!! Les échanges sont initiés et vous pouvez naviguer.
Génération d’une clé privée
Générer un CSR (Certificate Signing Request)
Retirer la passphrase
Générer un certificat auto-signé
Configurer le serveur Apache/httpd associé
Dans le répertoire /etc/httpd ou /etc/apache2 doit se trouve un fichier de configuration *ssl.conf ou un environnement dédié à la configuration de ssl
La commande suivante
vous permettra alors de déterminer le fichier en question. Il faudra alors paramétrer le serveur apache pour qu’il puisse intégrer les certificats que vous venez de générer:
Si vous avez trouvé cet article ou ce site utile et souhaitez soutenir notre travail, veuillez envisager de faire un don. Merci !
Aidez-nousArticles dans la même rubrique
- Trouver les processus consommant le plus de cpu/mémoire à l'aide de la commande ps
- Trouver/déterminer les options avec lesquelles python a été compilé
- Trouver/déterminer la version de numpy de numpy que j'utilise
- Télécharger de la musique et des vidéos .mp3, .wma, .avi, .mpg , divx avec google
- Taille du disque et de répertoire: df du
- SVN -- Comment ignorer des fichiers ou des répertoires avec subversion?
- Rechercher un fichier: locate, find et which
- Quelle est la version de mon noyau Linux : uname
- Programmation des actions(tâches) régulières: crontab
- phpMyAdmin: rechercher et remplacer dans une base MySQL
- Ouverture et fermeture de session: login, logout et password
- Nombre de lignes, de mots d'un fichier: wc
- Linux Comment supprimer une imprimante en ligne de commande
- Linux comment se connecter à Windows via remote desktop RDP en CentOS 7 / RedHat 7
- Lancer une commande un jour donné, à une heure donnée: at
- How to shut down or reboot: shutdown command
- Historique des commandes: history
- Faire un diff sur des fichiers distants en utilisant ssh
- Effacer l'écran et enlever certains caractères bizarres: clear reset
- Comment synchroniser les données mémoire sur le disque: sync
- Comment générer des certificats auto-signés OpenSSL sous Linux CentOs/RedHat pour Apache/httpd
- Comment faire un déni de service en BASH à l'aide de fork ?
- Comment éteindre ou redémarrer son pc: shutdown
- Comment définir un timeout lors d'une tentative de connexion SSH ?
- Comment chiffrer/déchiffrer un fichier ou un répertoire sous Linux?
- Chronométrer une tâche: time
- Archivage et compression de données: tar
- Affichage du calendrier en ligne de commande: cal
- Accélérer le processus de compilation et de build avec GNU make
- Accéder à une page de manuel: man
- Linux - Commande du jour