Comment créer un certificat SSL auto-signé local sur CentOS 8

Comment créer un certificat SSL auto-signé local sur CentOS 8

SSL (Fixer une couche de prise), et sa version améliorée, TLS (Couche de prise de transport), sont des protocoles de sécurité qui sont utilisés pour sécuriser le trafic Web envoyé du navigateur Web d'un client à un serveur Web.

Un SSL Le certificat est un certificat numérique qui crée un canal sécurisé entre le navigateur d'un client et un serveur Web. Ce faisant, des données sensibles et confidentielles telles que les données de carte de crédit, les informations d'identification de connexion et d'autres informations hautement privées sont cryptées, empêchant les pirates de écouter et de voler vos informations.

Qu'est-ce qu'un certificat SSL auto-signé?

Un certificat SSL auto-signé, contrairement à d'autres SSL certificats signés et fiables par un Autorité de certification (Californie), est un certificat signé par une personne qui le possède.

Il est totalement gratuit d'en créer un et est un moyen bon marché de chiffrer votre serveur Web hébergé localement. Cependant, l'utilisation d'un certificat SSL auto-signé est très découragée dans les environnements de production pour les raisons suivantes:

  1. Puisqu'il n'est pas signé par un Autorité de certification, Un certificat SSL auto-signé génère des alertes sur les navigateurs Web avertissant les utilisateurs des risques potentiels à venir s'ils décident de continuer. Ces alertes sont indésirables et dissuaderont les utilisateurs de visiter votre site Web, ce qui entraînera une baisse du trafic Web. En tant que solution de contournement de ces alertes, les organisations encouragent généralement leurs employés à ignorer simplement les alertes et à avancer. Cela peut engendrer une habitude dangereuse parmi les utilisateurs qui peuvent décider de continuer à ignorer ces alertes sur d'autres sites en ligne, potentiellement victimes de sites de phishing.
  2. Les certificats auto-signés ont un niveau de faible sécurité car ils mettent en œuvre des technologies de chiffrement de bas niveau et des hachages. Ainsi, le niveau de sécurité peut ne pas être à égalité avec les politiques de sécurité standard.
  3. De plus, il n'y a pas de support pour les fonctions d'infrastructure de clé publique (PKI).

Cela dit, l'utilisation d'un certificat SSL auto-signé n'est pas une mauvaise idée pour tester les services et les applications sur une machine locale qui nécessite TLS / SSL chiffrement.

Dans ce guide, vous apprendrez à installer un certificat SSL auto-signé local sur le Apache serveur Web localhost sur un Centos 8 système de serveur.

Conditions préalables:

Avant de commencer, assurez-vous que vous disposez des exigences de base suivantes:

  1. Une instance du serveur CentOS 8.
  2. Apache Webserver installé sur le serveur
  3. Un nom d'hôte déjà configuré et défini dans le / etc / hôtes déposer. Pour ce guide, nous allons utiliser Tecmint.local un nom d'hôte pour notre serveur.

Étape 1: Installation de mod_ssl sur centos

1. Pour commencer, vous devez vérifier que le Apache Le serveur Web est installé et en cours d'exécution.

$ sudo systemctl status httpd 

Voici la sortie attendue.

Vérifiez l'état Apache

Si le serveur Web n'est pas en cours d'exécution, vous pouvez démarrer et l'activer lors du démarrage à l'aide de la commande.

$ sudo systemctl start httpd $ sudo systemctl activer httpd 
Démarrer le serveur Web Apache

Vous pouvez ensuite confirmer si Apache est opérationnel.

2. Pour activer l'installation et la configuration du certificat SSL auto-signé local, le mod_ssl un package est requis.

$ sudo dnf installer mod_ssl 

Une fois installé, vous pouvez vérifier son installation en exécutant.

$ sudo rpm -q mod_ssl 
Vérifiez l'installation de MOD SSL

Assurez-vous également que le OpenSSL le package est installé (OpenSSL est installé par défaut dans Centos 8).

$ sudo rpm -q openssl 
Vérifiez l'installation d'OpenSSL

Étape 2: Créez un certificat SSL auto-signé local pour Apache

3. Avec le Apache Le serveur Web et toutes les conditions préalables en contrôle, vous devez créer un répertoire dans lequel les clés cryptographiques seront stockées.

Dans cet exemple, nous avons créé un répertoire à / etc / ssl / privé.

$ sudo mkdir -p / etc / ssl / privé 

Créez maintenant la touche et le fichier de certificat SSL local à l'aide de la commande:

$ sudo openssl req -x509 -Nodes -newkey rsa: 2048 -Keyout Tecmint.local.clé -out tecmint.local.CRT 

Jetons un coup d'œil à ce que représentent réellement certaines des options de la commande:

  • req -x509 - Cela indique que nous utilisons la demande de signature du certificat X509 (RSE).
  • -nœuds - Cette option demande à OpenSSL de sauter le certificat SSL à l'aide d'une phrase secrète. L'idée ici est de permettre à Apache de pouvoir lire le fichier sans aucune sorte d'intervention d'utilisateur qui ne serait pas possible si une phrase de passe est fournie.
  • -Newkey RSA: 2048 - Cela indique que nous voulons créer simultanément une nouvelle clé et un nouveau certificat. La partie RSA: 2048 implique que nous voulons créer une clé RSA 2048 bits.
  • -clé - Cette option spécifie où stocker le fichier de clé privée générée lors de la création.
  • -dehors - L'option spécifie où placer le certificat SSL créé.
Créer un certificat SSL local pour Apache

Étape 3: Installez le certificat SSL auto-signé local sur Apache

4. Après avoir généré le fichier de certificat SSL, il est maintenant temps d'installer le certificat à l'aide des paramètres du serveur Web Apache. Ouvrir et modifier le / etc / httpd / confre.d / ssl.confli fichier de configuration.

$ sudo vi / etc / httpd / confre.d / ssl.confli 

Assurez-vous que vous avez les lignes suivantes entre les balises hôtes virtuelles.

 ServerAdmin [Protégé par e-mail] servername www.Tecmint.Serveralias locaux Tecmint.DocumentRoot local / var / www / html sslengine sur Sslcertificatefile / etc / ssl / private / tecmint.local.CRT Sslcertificatekeyfile / etc / ssl / private / tecmint.local.clé  

Enregistrer et quitter le fichier. Pour que les modifications soient effectuées, redémarrez Apache à l'aide de la commande:

$ sudo systemctl redémarrer httpd 

5. Pour que les utilisateurs externes puissent accéder à votre serveur, vous devez ouvrir le port 443 à travers le pare-feu comme indiqué.

$ sudo Firewall-Cmd --Add-Port = 443 --zone = public --permanent $ sudo Firewall-CMD - Reload 

Étape 3: Test du certificat SSL auto-signé local sur Apache

Avec toutes les configurations en place, lancez votre navigateur et parcourez l'adresse de votre serveur à l'aide de l'adresse IP ou du nom de domaine du serveur à l'aide du protocole HTTPS.

Pour rationaliser les tests, vous pouvez envisager de rediriger le protocole HTTP vers HTTPS sur le serveur Web Apache. C'est ainsi que chaque fois que vous parcourez le domaine en http simple, il sera automatiquement redirigé vers le protocole HTTPS.

Alors parcourez le domaine ou la propriété intellectuelle de votre serveur

https: // domain_name / 

Vous obtiendrez une alerte vous informant que la connexion n'est pas sécurisée comme indiqué. Cela variera d'un navigateur à un autre. Comme vous pouvez le deviner, l'alerte est due au fait que le certificat SSL n'est pas signé par le Autorité de certification Et le navigateur enregistre et rapporte que le certificat ne peut pas faire confiance.

Avertissement de certificat SSL

Pour procéder à votre site Web, cliquez sur le 'Avancé'onglet comme indiqué ci-dessus:

Procéder à des avertissements de certificat SSL

Ensuite, ajoutez l'exception au navigateur.

Confirmer une exception de sécurité

Enfin, rechargez votre navigateur et observez que vous pouvez désormais accéder au serveur, bien qu'il y aura un avertissement sur la barre d'URL que le site n'est pas entièrement sécurisé pour la même raison que le certificat SSL est auto-signé et non signé par le Autorité de certification.

Site Web d'accès via HTTPS

Nous espérons que vous pourrez maintenant procéder et créer et installer un certificat SSL auto-signé sur le serveur Web localhost Apache sur Centos 8.