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 makes use of what is known as asymmetric cryptography, commonly referred to as public key cryptography (PKI). With public key cryptography, two keys are created, one public, one private. Anything encrypted with either key can only be decrypted with its corresponding key. Thus if a message or data stream were encrypted with the server’s private key, it can be decrypted only using its corresponding public key, ensuring that the data only could have come from the server.

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.

During the generation of the CSR, you will be prompted for several pieces of information. These are the X.509 attributes of the certificate. One of the prompts will be for “Common Name (e.g., YOUR name)”. It is important that this field be filled in with the fully qualified domain name of the server to be protected by SSL. If the website to be protected is https://yourdomain.com, then enter “yourdomain.com” at this prompt. The command to generate the CSR is as follows:

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 []:admin@votredomaine.com 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é

At this point you will need to generate a self-signed certificate because you either don’t plan on having your certificate signed by a CA, or you wish to test your new SSL implementation while the CA is signing your certificate. This temporary certificate will generate an error in the client browser to the effect that the signing certificate authority is unknown and not trusted.

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 *

French
English
English
Japanese
German
French
Spanish

WhatsApp nous

Quitter la version mobile