Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
reseau:certificat:certificatautosigne [2021/11/28 15:43] techer.charles_educ-valadon-limoges.fr [Explication :] |
reseau:certificat:certificatautosigne [2021/11/28 19:01] techer.charles_educ-valadon-limoges.fr [Créer un certificat autosigné] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Créer un certificat autosigné ====== | + | ====== Créer un certificat autosigné |
===== Présentation ===== | ===== Présentation ===== | ||
Ligne 47: | Ligne 47: | ||
</ | </ | ||
- | ===== Générer la clé publique RSA (contenu dans le fichier user.pem) ===== | + | <WRAP center round info> |
+ | Pour ne pas associer de pass-phrase à la clé privée ne précisez pas l' | ||
+ | <code shell> | ||
+ | $ openssl genrsa -out user-private.pem 2048 | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ===== Générer la clé publique RSA (contenu dans le fichier user-private.pem) ===== | ||
<code shel> | <code shel> | ||
$ openssl rsa -in user-private.pem -out user-public.pem -pubout | $ openssl rsa -in user-private.pem -out user-public.pem -pubout | ||
Ligne 72: | Ligne 79: | ||
Pour générer la requête de demande de signature, il faut utiliser le fichier contenant la clé privée. | Pour générer la requête de demande de signature, il faut utiliser le fichier contenant la clé privée. | ||
- | Lors de la création de la requête il est important | + | Lors de la création de la requête |
* Saisissez la commande suivante : | * Saisissez la commande suivante : | ||
<code shell> | <code shell> | ||
- | $ openssl req -new -key user-private.pem | + | $ openssl req -new -key user-private.pem |
You are about to be asked to enter information that will be incorporated | You are about to be asked to enter information that will be incorporated | ||
Ligne 104: | Ligne 111: | ||
* **-out** : Indique le fichier de sortie | * **-out** : Indique le fichier de sortie | ||
- | ===== Génération du certificat | + | ===== Génération du certificat auto-signé ===== |
+ | Lors de la génération d'un certificat autosigné, vous avez à préciser | ||
<code shell> | <code shell> | ||
- | $ openssl x509 -req -days 365 -in user.csr -signkey user-private.key -out user.crt | + | $ openssl x509 -req -days 365 -in user.csr -signkey user-private.pem -out user.crt |
+ | |||
+ | Signature ok | ||
+ | subject=C = FR, ST = Haute-Vienne, | ||
+ | Getting Private key | ||
+ | Enter pass phrase for user-private.pem: | ||
+ | sio@vpsdebian: | ||
</ | </ | ||
- | Le certificat généré est le fichier **.crt** et la clé privée associée, le fichier **.key**. | + | Le certificat généré est le fichier **.crt** et la clé privée associée, le fichier **.pem**. |
- | ====== Notes ====== | + | |
- | ===== Création clé privée du CA : ===== | + | |
- | + | ||
- | <code shel> | + | |
- | openssl genrsa 2048 -out ca-key.pem | + | |
- | </ | + | |
- | Une clé maintenant : | + | |
- | * la clé privée de votre autorité de certification (CA) ca-key.pem. | + | |
+ | ===== Visualisation des informations du certificat ===== | ||
+ | * sous Linux, vous pouvez constater que le certificat est auto-signé : | ||
+ | {{ : | ||
- | ===== Création certificat du CA en renseignant les informations d'identité. Il est important | + | * Sous Windows, après l'avoir récupéré avec scp, vous pouvez également constater |
- | ===== | + | {{ : |
- | <code shell> | + | |
- | openssl req -new -x509 -nodes -days 365000 -key ca-key.pem -out ca-cert.pem | + | |
- | </ | + | |
- | Deux clés maintenant : | + | ===== Utilisation de la clé publique pour une connexion distance en SSH ===== |
- | * la clé privée | + | Génération |
- | | + | |
- | ===== Création de la clé privée pour un serveur ===== | ||
- | Création de la clé privée du serveur en utilisant les deux fichiers créés auparavant et en indiquant un Common Name unique et en définissant un mot de passe comme chalenge password pour protéger la clé privée. | ||
<code shell> | <code shell> | ||
- | $ sudo openssl req -newkey rsa: | + | # ssh-keygen |
- | Generating a RSA private key | + | |
- | writing new private key to ' | + | |
- | Country Name (2 letter code) [AU]:FR | + | |
- | State or Province Name (full name) [Some-State]: | + | |
- | Locality Name (eg, city) []: | + | |
- | Organization Name (eg, company) [Internet Widgits Pty Ltd]:BTS SIO CNED | + | |
- | Organizational Unit Name (eg, section) []: | + | |
- | Common Name (e.g. server FQDN or YOUR name) []:MariaDB server | + | |
- | Email Address []: | + | |
- | + | ||
- | Please enter the following ' | + | |
- | to be sent with your certificate request | + | |
- | A challenge password []: | + | |
- | An optional company name []: | + | |
- | </code> | + | |
- | + | ||
- | ===== Traitement de la clé privée du serveur MariaDB pour obtenir un type de clé RSA : ===== | + | |
- | <code shell> | + | |
- | $ openssl rsa -in server-key.pem -out server-key.pem | + | |
- | writing RSA key | + | |
- | </ | + | |
- | ===== Signature du certificat du serveur par votre autorité de certification (CA) : ===== | + | |
- | <code shell> | + | |
- | $ openssl x509 -req -in server-req.pem -days 365000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem | + | |
- | Signature ok | + | |
- | subject=C = FR, ST = Haute-Vienne, | + | |
- | Getting CA Private Key | + | |
</ | </ | ||
- | Vous disposez maintenant de deux fichiers supplémentaires qui permettront de sécuriser la communication le serveur : | + | Le contenu du fichier |
- | * Le fichier | + | |
- | | + | |
- | ===== Vérification que le certificat du serveur | + | Vous pouvez" |
<code shell> | <code shell> | ||
- | $ openssl verify | + | $ ssh -i user-private.pem user@adresseIPserverur |
- | server-cert.pem: | + | |
</ | </ | ||
- | ===== Création du certificat SSL pour un utilisateur | + | ====== Format de fichier ====== |
- | Création | + | Lien : https:// |
- | <code shell> | + | * **.csr** : fichier |
- | $ sudo openssl | + | * **.pem** (Privacy Enhanced Mail) : format |
- | Generating a RSA private key | + | * uniquement le certificat public , |
- | writing new private key to 'user-key.pem' | + | * une chaîne de certificats complète comprenant une clé publique, une clé privée et le certificat racine. De manière confuse ; |
- | Country Name (2 letter code) [AU]:FR | + | * un CSR car le format PKCS10 peut être traduit en PEM. Le nom vient de Privacy Enhanced Mail (PEM). |
- | State or Province Name (full name) [Some-State]: | + | * **.key** |
- | Locality Name (eg, city) []:Limoges | + | * **.pkcs12 .pfx .p12** : format de conteneur entièrement chiffré avec mot de passe contenant les paires de certificats publics et privés. Openssl peut transformer ce conteneur en un fichier .pem avec des clés publiques et privées (openssl |
- | Organization Name (eg, company) [Internet Widgits Pty Ltd]:BTS SIO | + | * **.der** : fichier dont les données sont encodées en binaire à la différence du format **.pem** codé en Base64. OpenSSL peut convertir un fichier .der en .pem ( openssl x509 -inform der -in to-convert.der -out converted.pem). Windows considère les fichiers .der comme des fichiers de certificat et exportera par défaut les certificats sous forme de fichiers au format .der avec une extension différente. |
- | Organizational Unit Name (eg, section) []: | + | * **.cert .cer .crt** : fichier au format .pem (ou rarement .der) portant une extension différente, |
- | Common Name (e.g. server FQDN or YOUR name) []:user | + | * **.p7b .keystore** - Défini dans le RFC 2315 en tant que PKCS numéro 7, il s'agit d'un format utilisé par Windows pour l' |
- | Email Address []: | + | * **.crl** |
+ | |||
+ | En résumé, il existe quatre manières différentes de présenter les certificats et leurs composants: | ||
+ | * PEM : Régi par les RFC et utilisé préférentiellement par les logiciels open source. Il peut avoir une variété d' | ||
+ | * **PKCS7** | ||
+ | * **PKCS12** | ||
+ | * **DER** | ||
- | Please enter the following ' | ||
- | to be sent with your certificate request | ||
- | A challenge password []: | ||
- | An optional company name []: | ||
- | </ | ||
- | ===== Traitement de la clé privée du client pour obtenir un type de clé RSA : ===== | ||
- | <code shell> | ||
- | $ sudo openssl rsa -in user-key.pem -out user-key.pem | ||
- | writing RSA key | ||
- | </ | ||
- | ===== Signature du certificat du client MariaDB par votre autorité de certification (CA) : ===== | ||
- | <code shell> | ||
- | $ sudo openssl x509 -req -in user-req.pem -days 365000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out user-cert.pem | ||
- | Signature ok | ||
- | subject=C = FR, ST = Haute-Vienne, | ||
- | Getting CA Private Key | ||
- | </ | ||
- | ===== Vérification du certificat du client MariaDB : ===== | ||
- | <code shell> | ||
- | $ openssl verify -CAfile ca-cert.pem user-cert.pem | ||
- | user-cert.pem: | ||
- | </ | ||
====== Format de fichier ====== | ====== Format de fichier ====== | ||
Ligne 256: | Ligne 213: | ||
CSR (Certificate Signing Request) : demande externe de certificat à la CA en fournissant la clé publique et des informations d' | CSR (Certificate Signing Request) : demande externe de certificat à la CA en fournissant la clé publique et des informations d' | ||
- | |||
- | ====== Format de fichier ====== | ||
- | Lien : https:// | ||
- | * **.csr** : fichier de demande de signature d'un certificat contenant la clé publique et les information d' | ||
- | * **.pem** (Privacy Enhanced Mail) : format de conteneur pouvant inclure : | ||
- | * uniquement le certificat public , | ||
- | * une chaîne de certificats complète comprenant une clé publique, une clé privée et le certificat racine. De manière confuse ; | ||
- | * un CSR car le format PKCS10 peut être traduit en PEM. Le nom vient de Privacy Enhanced Mail (PEM). | ||
- | * **.key** | ||
- | * **.pkcs12 .pfx .p12** : format de conteneur entièrement chiffré avec mot de passe contenant les paires de certificats publics et privés. Openssl peut transformer ce conteneur en un fichier .pem avec des clés publiques et privées (openssl pkcs12 -in file-to-convert.p12 -out converted-file.pem -nodes) | ||
- | * **.der** : fichier dont les données sont encodées en binaire à la différence du format **.pem** codé en Base64. OpenSSL peut convertir un fichier .der en .pem ( openssl x509 -inform der -in to-convert.der -out converted.pem). Windows considère les fichiers .der comme des fichiers de certificat et exportera par défaut les certificats sous forme de fichiers au format .der avec une extension différente. | ||
- | * **.cert .cer .crt** : fichier au format .pem (ou rarement .der) portant une extension différente, | ||
- | * **.p7b .keystore** - Défini dans le RFC 2315 en tant que PKCS numéro 7, il s'agit d'un format utilisé par Windows pour l' | ||
- | * **.crl** : liste de révocation de certificats utilisée par les autorités de certification comme moyen de désautoriser les certificats avant leur expiration. | ||
- | |||
- | En résumé, il existe quatre manières différentes de présenter les certificats et leurs composants: | ||
- | * PEM : Régi par les RFC et utilisé préférentiellement par les logiciels open source. Il peut avoir une variété d' | ||
- | * **PKCS7** | ||
- | * **PKCS12** | ||
- | * **DER** : format parent de PEM et est à considéré comme une version binaire du fichier PEM codé en base64. Pas couramment utilisé en dehors de Windows. | ||