Vous êtes sur la page 1sur 7

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 <numero> 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 rsa -noout -modulus -in domain.key | openssl md5


openssl x509 -noout -modulus -in domain.crt | openssl sha256
openssl req -noout -modulus -in domain.csr | openssl md5
openssl 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

Vous aimerez peut-être aussi