Comment générer et installer un certificat auto-signé sur Apache ?

Le Secure Socket Layer (SSL) est utilisé pour crypter le flux de données entre le serveur Web et le client Web (le navigateur).

SSL utilise ce que l'on appelle la cryptographie asymétrique, communément appelée cryptographie à clé publique (PKI). Avec la cryptographie à clé publique, deux clés sont créées, une publique et une privée. Tout ce qui est chiffré avec l'une ou l'autre clé ne peut être déchiffré qu'avec la clé correspondante. Ainsi, si un message ou un flux de données était chiffré avec la clé privée du serveur, il ne pourrait être déchiffré qu'à l'aide de la clé publique correspondante, garantissant ainsi que les données pouvaient uniquement provenir du serveur.

Le certificat SSL Apache signé par une autorité de certification (CA) de confiance garantit que le titulaire du certificat est une personne ou une organisation réelle. Sans certificat signé de confiance, vos données peuvent être cryptées. Cependant, la personne avec laquelle vous communiquez n'est peut-être pas celle que vous pensez. Sans certificat SSL Apache, les attaques par usurpation d'identité seraient beaucoup plus courantes.

La boîte à outils openssl est utilisée pour générer une clé privée RSA et une CSR (Certificate Signing Request). Il peut également être utilisé pour générer des certificats auto-signés qui peuvent être utilisés à des fins de test ou pour un usage interne.

Étape 1 : générer une clé privée

La première étape consiste à créer votre clé privée RSA. Cette clé est une clé RSA de 1 024 bits qui est cryptée à l'aide de Triple-DES et stockée au format PEM afin qu'elle soit lisible sous forme de texte ASCII.

openssl genrsa -des3 -out server.key 1024 Génération d'une clé privée RSA, module de 1024 bits de long .........................................................++++++ ........++++++ e est 65537 (0x10001) Saisissez la phrase de passe PEM : Vérification du mot de passe - Saisissez la phrase de passe PEM :

Étape 2 : générer un CSR (demande de signature de certificat)

Une fois la clé privée générée, une demande de signature de certificat peut être générée. Le CSR est ensuite utilisé de deux manières. Idéalement, le CSR sera envoyé à une autorité de certification, telle que Verisign, qui vérifiera l'identité du demandeur et délivrera un certificat signé. La deuxième option consiste à signer soi-même le CSR, ce qui sera démontré dans la section suivante.

Lors de la génération du CSR, plusieurs informations vous seront demandées. Ce sont les attributs X.509 du certificat. L'une des invites sera « Nom commun (par exemple, VOTRE nom) ». Il est important que ce champ soit renseigné avec le nom de domaine complet du serveur à protéger par SSL. Si le site Web à protéger est https://yourdomain.com, puis saisissez « votredomaine.com » à cette invite. La commande pour générer le CSR est la suivante :

openssl req -new -key server.key -out server.csr Nom du pays (code à 2 lettres) [GB]:IN Nom de l'État ou de la province (nom complet) [Berkshire] : Karnataka Nom de la localité (par exemple, ville) [Newbury] : Bangalore Nom de l'organisation (par exemple, entreprise) [My Company Ltd] : Nom de l'entreprise Nom de l'unité organisationnelle (par exemple, section) [] : Technologie de l'information Nom commun (par exemple, votre nom ou le nom d'hôte de votre serveur) []:votredomaine.com Adresse e-mail []:[email protected] Veuillez saisir les attributs « supplémentaires » suivants à envoyer avec votre demande de certificat Un mot de passe de défi [] : Un nom de société facultatif [] :

Étape 3 : Supprimer la phrase secrète de la clé

Un effet secondaire malheureux de la clé privée avec phrase secrète est que le serveur Web demandera la phrase secrète à chaque démarrage du serveur Web. Évidemment, cela n'est pas nécessairement pratique, car il n'y aura pas toujours quelqu'un pour saisir la phrase secrète, par exemple après un redémarrage ou un crash. mod_ssl inclut la possibilité d'utiliser un programme externe à la place de la boîte de dialogue de phrase secrète intégrée, cependant, ce n'est pas nécessairement non plus l'option la plus sécurisée. Il est possible de supprimer le cryptage Triple-DES de la clé, ce qui évite de devoir saisir une phrase secrète. Si la clé privée n'est plus chiffrée, il est essentiel que ce fichier ne soit lisible que par l'utilisateur root ! Si jamais votre système est compromis et qu’un tiers obtient votre clé privée non cryptée, le certificat correspondant devra être révoqué. Cela étant dit, utilisez la commande suivante pour supprimer la phrase secrète de la clé :

cp serveur.key serveur.key.org openssl rsa -in server.key.org -out server.key

Le fichier server.key nouvellement créé ne contient plus de phrase secrète.

Étape 4 : Générer un certificat auto-signé

À ce stade, vous devrez générer un certificat auto-signé car soit vous ne prévoyez pas de faire signer votre certificat par une autorité de certification, soit vous souhaitez tester votre nouvelle implémentation SSL pendant que l'autorité de certification signe votre certificat. Ce certificat temporaire générera une erreur dans le navigateur client indiquant que l'autorité de certification signataire est inconnue et non fiable.

Pour générer un certificat temporaire valable 365 jours, exécutez la commande suivante :

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt Signature ok subject=/C=CH/ST=Berne/L=Oberdiessbach/O=Akadia AG/OU=Information Technology/CN=public.akadia.com/Email=martin dot zahn chez akadia dot ch Obtenir une clé privée

Étape 5 : Installation de la clé privée et du certificat

Lorsqu'Apache avec mod_ssl est installé, il crée plusieurs répertoires dans le répertoire de configuration Apache. L'emplacement de ce répertoire diffère selon la manière dont Apache a été compilé.

cp serveur.crt /usr/local/apache/conf/ssl.crt cp server.key /usr/local/apache/conf/ssl.key

Étape 6 : Configuration des hôtes virtuels compatibles SSL

Moteur SSL activé SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown Journaux CustomLog/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"

Maintenant, redémarrez Apache et vérifiez.

Prenez contact avec nous.

Abonnez-vous pour les dernières mises à jour

Articles Similaires

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

fr_FRFrench