Recherche de site Web

Comment créer des certificats et des clés SSL auto-signés pour Apache sur RHEL/CentOS 7.0


SSL (Secure Sockets Layer) est un protocole cryptographique qui permet de sécuriser le flux de données entre un serveur et ses clients à l'aide de clés symétriques/asymétriques en utilisant un certificat numérique signé par une autorité de certification. (CALIFORNIE).

Exigences

  1. Installation de base de LAMP sur RHEL/CentOS 7.0

Ce didacticiel fournit une approche sur la façon de configurer le protocole cryptographique de communication Secure Sockets Layer (SSL) sur le serveur Web Apache installé dans Red Hat Enterprise Linux/CentOS 7.0<. et générez des certificats et des clés auto-signés à l'aide d'un script bash qui simplifie grandement l'ensemble du processus.

Étape 1 : Installer et configurer Apache SSL

1. Pour activer SSL sur le serveur HTTP Apache, utilisez la commande suivante pour installer le module SSL et le kit d'outils OpenSSL nécessaires à la prise en charge SSL/TLS.

yum install mod_ssl openssl

2. Une fois le module SSL installé, redémarrez le démon HTTPD et ajoutez une nouvelle règle de pare-feu pour garantir que le port SSL – 443 – est ouvert à connexions extérieures sur votre machine en état d'écoute.

systemctl restart httpd
firewall-cmd --add-service=https   ## On-fly rule

firewall-cmd --permanent  --add-service=https   ## Permanent rule – needs firewalld restart

3. Pour tester la connexion SSL, ouvrez un navigateur distant et accédez à l'adresse IP de votre serveur à l'aide du protocole HTPS sur https://server_IP.

Étape 2 : Créer des certificats et des clés SSL

4. La communication SSL précédente entre le serveur et le client était effectuée à l'aide d'un certificat et d'une clé par défaut générés automatiquement lors de l'installation. Afin de générer de nouvelles paires de clés privées et de certificats auto-signés, créez le script bash suivant sur un chemin système exécutable (` PATH).

Pour ce didacticiel, le chemin /usr/local/bin/ a été choisi, assurez-vous que le script a un bit exécutable défini, puis utilisez-le comme commande pour créer de nouvelles paires SSL sur /etc/ httpd/ssl/ comme emplacement par défaut des certificats et des clés.

nano /usr/local/bin/apache_ssl

Utilisez le contenu du fichier suivant.

#!/bin/bash
mkdir /etc/httpd/ssl
cd /etc/httpd/ssl

echo -e "Enter your virtual host FQDN: \nThis will generate the default name for Apache SSL Certificate and Key!"
read cert

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt

echo -e " The Certificate and Key for $cert has been generated!\nPlease link it to Apache SSL available website!"
ls -all /etc/httpd/ssl
exit 0

5. Rendez maintenant ce script exécutable et lancez-le pour générer une nouvelle paire de certificat et de clé pour votre hôte virtuel Apache SSL.

Remplissez-le avec vos informations et faites attention à la valeur du Nom commun pour qu'elle corresponde au nom de domaine complet de votre serveur ou, en cas d'hébergement virtuel, pour qu'elle corresponde à l'adresse Web à laquelle vous accéderez lors de la connexion à un site Web sécurisé.

chmod +x /usr/local/bin/apache_ssl
apache_ssl

6. Une fois le certificat et la clé générés, le script présentera une longue liste de toutes vos paires SSL Apache stockées à l'emplacement /etc/httpd/ssl/.

7. Une autre approche pour générer des certificats et des clés SSL consiste à installer le package crypto-utils sur votre système et à générer des paires à l'aide de la commande genkey, qui peut pose quelques problèmes, notamment lorsqu'il est utilisé sur un écran de terminal Putty.

Je suggère donc d’utiliser cette méthode uniquement lorsque vous êtes directement connecté à un écran.

yum install crypto-utils
genkey your_FQDN

8. Pour ajouter le nouveau certificat et la nouvelle clé à votre site Web SSL, ouvrez le fichier de configuration de votre site Web et remplacez les instructions SSLCertificateFile et SSLCertificateKeyFile par les nouvelles paires. emplacement et noms en conséquence.

9. Si le certificat n'est pas émis par une autorité de certification de confiance ou si le nom d'hôte du certificat ne correspond pas au nom d'hôte qui a établi la connexion, une erreur devrait apparaître sur votre navigateur et vous devez accepter manuellement le certificat.

C'est ça! Vous pouvez désormais utiliser apache_ssl comme ligne de commande sur RHEL/CentOS 7.0 pour générer autant de paires de certificats et de clés auto-signés dont vous avez besoin, et tout sera conservé sur /etc/httpd/ chemin ssl/ avec le fichier clé protégé avec les autorisations 700.