openSSL Cours Et TP [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

openSSL_cours_et_TP.md

13/09/2021

OpenSSL OpenSSL concerne les PKI (Public Key Infrastructure) et HTTPS (HTTP avec TLS)

Les CSR (Certificat Signing Requests) et les certificats SSL On génère un CSR pour avoir un certificat SSL permettant le protocole HTTPS On parle de certificats SSL, en fait ce sont des certificats basés sur TLS CA = Certificate Authority. Authorité de certification. Organisme de controle délivrant des Certificats SSL. CSR = Certified Signing Request : demande de certificat Les types de certificats DV = Domain Validation. Sur simple mail avec le nom de domaine. OV = Organisation Validation. SIRET et autres papiers. IV = Individual Validation. Passeport et autres papiers. EV = Extended Validation. Pour les banques et autres donaines sensibles. Wildcard = option de plan pour multples sous domaines type *.domain.com (DV ou OV) Multidomain ou SAN (Subject Alternatives Names) = option de plan : 1 certificat pour plus de 100 domaines (DV, OV ou EV) exemple avec GlobalSIgn, le top 6, Cloudns.net, DigiCert, SSLmarket avec article comparatif et tableau comparatif, comparatifs 10 fournisseurs et un CA à but non lucratif Let's Encrypt avec, si accès root-ssh l'utilisation de Certbot Il est difficile de différencier un certificat DV d'un OV. Dans les détails du certificat à la rubrique sujet ou objet on trouve des infos sur l'entreprise si c'est un OV. Pour les certificats EV, ils ont une barre verte dans l'URL du navigateur. Les étapes à suivre pour obtenir un certificat SSL La demande de signature de certificat n’est qu’une des étapes nécessaires pour l’obtention d’un certificat SSL. Profitons-en pour rappeler quelles sont ces étapes incontournables : Sélectionnez l’Autorité de Certification qui vous délivrera votre certificat SSL. (Généralement son hébergeur) Choisissez votre niveau de certification (SSL DV, SSL OV, SSL EV) et la période de validité désirée. Entrez votre CSR certificat en prenant soin de donner des informations complètes et viables, après avoir généré l’indispensable paire de clés. Attendez la validation de votre demande. Téléchargez votre certificat SSL émis par l’AC, soit depuis le mail qui vous a été envoyé, soit depuis votre Espace client sur le site du prestataire. Placez vos certificats (s’il y en a plusieurs) dans un dossier dédié. Installez votre certificat et liez-le à votre site web. Redémarrez votre serveur et testez votre certificat numérique. Utilisez des navigateurs web différents pour vous assurer que le protocole HTTPS est bien activé et que l’icône du cadenas apparaît. 1/7

openSSL_cours_et_TP.md

13/09/2021

La procédure est quasiment identique quel que soit le serveur utilisé (Apache, par exemple). Pour plus d’informations au sujet de votre demande de certificat (CSR) et de l’installation de votre certificat final, n’hésitez pas à vous renseigner auprès de votre Autorité de Certification. Exemple de CA Let's Encrypt Délivre des certificats type DV gratuits Ils sont gratuits et délivrés par une autorité de certification, Ils permettent une connexion sécurisée via le protocole HTTPS, ils peuvent sécuriser un serveur web, un serveur de messagerie, un serveur FTP,… L’émission du certificat est automatisée et ne prend que 5 minutes, Les certificats sont valables 90 jours (il est possible d’automatiser le renouvellement), Ils sont uniquement de type validation de domaine (DV), Les certificats Let’s Encrypt sont reconnus et compatibles avec quasiment tous les navigateurs et toutes les applications, Ils sont de type X.509 et utilisent la fonction de hachage SHA-2. Digicert Prix d'OV chez Digicert Un comparateur de prix de CA pas cher Liste de CA Les informations dans un CSR CN = le FQDN, l'information la plus importante; O = Le nom de l’entreprise qui génère la demande ; 2/7

openSSL_cours_et_TP.md

13/09/2021

OU = L’unité organisationnelle , sous la forme du numéro de SIREN précédé de « 0002 » ; L et S = La localité et la région où est situé le siège social de l’organisation ; C = Le pays sous la forme d’un code ISO à deux lettres ; L’adresse mail de l’intermédiaire au sein de l’entreprise (le plus souvent, c’est la personne en charge de la gestion des certificats) Définition FQDN = Fully Qualify Domain Name. Un FQDN, ou nom de domaine pleinement qualifié, est écrit avec le hostname (nom d'hote) et le domain (nom de domaine), y compris le domaine de premier niveau, dans cet ordre : [hostname].[domain].[tld] Quelles sont les règles à respecter pour une CSR ? Créer une clé privée d’une longueur de 2048 bits (clé de type RSA 2018 Bits). S’assurer de la sécurité de la clé privée(en utilisant un outil de génération de clé suffisamment récent pour ne pas être vulnérable, et en définissant un mot de passe/une liste de contrôle pour en protéger l’accès). Utiliser un algorithme de signature en SHA256 (SHA 256withRSA) pour la CSR (en vertu des exigences du cahier des charges RGS). TP Certificats Afficher les certificats des domaine suivants : Le monde informatique Qwant Crédit Mutuel Centre de cybersécurité Chercher les dates d'expiration et des indices pour savoir le type de certificat (DV, OV ou EV) champ details/sujet : DV = juste CN; OV = CN + O + L + C; EV = CN + O + L + C + numero de série

OpenSSL, les commandes utiles. source La génération d'un CSR Il se fait avec un clé. Il faut utiliser SHA-2 aujourd'hui. La commande de base est :

openssl req \ -newkey rsa:2048 -sha256 -nodes -keyout mondomaine.key -out mondomaine.csr

explications: -nodes signifie que l'on de demande pas de mot de passe pour cette clé. 3/7

\

openSSL_cours_et_TP.md

13/09/2021

A la fin il est demandé un challenge password, ce n'est pas le MdP de la clé. Le "Le challenges password" est essentiellement un secret partagé entre vous et l'émetteur du certificat SSL (alias autorité de certification, ou CA), intégré dans le CSR, que l'émetteur peut utiliser pour vous authentifier si cela s'avère nécessaire.voir cette discussion Pour un certificat à partir d'une clé existante :

openssl req \ -key domain.key \ -new -out domain.csr

Pour éviter l'interactivité de la commande on peut utiliser l'option -subj -subj "/C=FR/ST=Seine Maritime/L=LeHavre/O=Ma Petite Entreprise/CN=ma_petite_entreprise.org" Génération d'un certificat SSL (auto produit)

openssl req \ -newkey rsa:2048 -sha256 -nodes -out mondomaine.org.key -x509 -days 180 -out mondomaine.crt

\

-x509 désigne un certificat auto-produit -days nombre de jours de validité du certificat. Voir les certificats Voir un CSR : openssl req -text -noout -verify -in domain.csr Voir un certificat SSL auto-produit : openssl x509 -text -noout -in domain.crt Voir un certificat SSL produit par une CA : openssl verify -verbose -CAFile ca.crt domain.crt Vérifier la compatibilité clé privé / certificats ou CSR

openssl openssl openssl openssl

rsa -noout -modulus -in domain.key | openssl md5 x509 -noout -modulus -in domain.crt | openssl sha256 req -noout -modulus -in domain.csr | openssl md5 verify -verbose -CAFile ca.crt domain.crt

Générer une clé privée openssl genrsa -des3 -sha256 -out domain.key 2048

4/7

openSSL_cours_et_TP.md

13/09/2021

Format et convertion de certificats L'exention .crt est au format PEM Convert PEM to DER

openssl x509 \ -in domain.crt \ -outform der -out domain.der

Convert DER to PEM

openssl x509 \ -inform der -in domain.der \ -out domain.crt

Convert PEM to PKCS7

openssl crl2pkcs7 -nocrl \ -certfile domain.crt \ -certfile ca-chain.crt \ -out domain.p7b

Convert PKCS7 to PEM

openssl pkcs7 \ -in domain.p7b \ -print_certs -out domain.crt

Convert PEM to PKCS12

openssl pkcs12 \ -inkey domain.key \ -in domain.crt \ -export -out domain.pfx

Convert PKCS12 to PEM

openssl pkcs12 \ -in domain.pfx \ -nodes -out domain.combined.crt 5/7

openSSL_cours_et_TP.md

13/09/2021

Notes sur les formats

Différentes plates-formes et différents dispositifs nécessitent des certificats SSL dans différents formats ex : - Un serveur Windows utilise des fichiers .pfx Un serveur Apache utilise des fichiers .crt, .cer NOTE : La seule façon de faire la différence entre PEM.cer et DER.cer est d'ouvrir le fichier dans un éditeur de texte et de rechercher les mentions BEGIN/END. Format PEM

C'est le format le plus courant dans lequel les autorités de certification délivrent des certificats. Il contient les mentions "--BEGIN CERTIFICATE--" et "--END CERTIFICATE--". Plusieurs certificats PEM et même la clé privée peuvent être inclus dans un fichier, l'un sous l'autre. Mais la plupart des plateformes (par exemple Apache) s'attendent à ce que les certificats et la clé privée soient dans des fichiers séparés. Ce sont des fichiers ACII encodés en Base64 Ils ont des extensions telles que .pem, .crt, .cer, .key Apache et les serveurs similaires utilisent des certificats au format PEM Format DER

Il s'agit d'une forme binaire de certificat de format ASCII PEM. Tous les types de certificats et de clés privées peuvent être encodés au format DER Il s'agit de fichiers au format binaire Ils ont les extensions .cer & .der DER est généralement utilisé dans la plate-forme Java P7B/PKCS#7

Ils contiennent les déclarations "--BEGIN PKCS--" & "--END PKCS7--". Il ne peut contenir que les certificats et les certificats de chaîne mais pas la clé privée. Il s'agit de fichiers ASCII encodés en Base64 Ils ont les extensions .p7b, .p7c Plusieurs plates-formes le supportent, par exemple : Windows OS, Java Tomcat PFX/PKCS#12

Ils sont utilisés pour stocker le certificat du serveur, tout certificat intermédiaire et la clé privée dans un fichier crypté. Ce sont des fichiers au format binaire Ils ont les extensions .pfx, .p12 Généralement utilisé sur le système d'exploitation Windows pour importer et exporter des certificats et des clés privées

6/7

openSSL_cours_et_TP.md

13/09/2021

TP certificats : Générer un CSR pour le domaine exemple.fr en sha256. Lire le certificat auto-produit et le mettre dans un fichier cert-siteprive.net.txt. Générer un certificat auto-produit et une clé pour le domaine siteprive.net en sha256 Lire le certificat auto-produit et le mettre dans un fichier cert-siteprive.net.txt. Vérifier que la clé privée de exemple.fr correspond au CSR de exemple.fr. Vérifier que la clé privée de siteprive.net correspond au certificat de siteprive.net. Changer le format du certificat siteprice.net.cst pour un .p12

7/7