Certificats SSL : Différence entre versions

De Sn4kY
Aller à : navigation, rechercher
(Autorité de Certification CA)
Ligne 66 : Ligne 66 :
 
=== Créer une CA ===
 
=== Créer une CA ===
 
- Créer l'arbo qui va bien :
 
- Créer l'arbo qui va bien :
  mkdir -p demoCA/{newcerts,private}
+
  mkdir -p CA/{newcerts,private}
 
- Créer les fichiers qui vont bien :
 
- Créer les fichiers qui vont bien :
  echo "01" > demoCA/serial
+
  echo "01" > CA/serial
  echo "01" > demoCA/crlnumber
+
  echo "01" > CA/crlnumber
  touch demoCA/index.txt
+
  touch CA/index.txt
 
- Créer une clé privée pour la CA (4096 bits, avec une passphrase)
 
- Créer une clé privée pour la CA (4096 bits, avec une passphrase)
  openssl genrsa -des3 -out demoCA/private/cakey.pem 4096
+
  openssl genrsa -des3 -out CA/private/cakey.pem 4096
 
genrsa : Directive pour générer des clés privées
 
genrsa : Directive pour générer des clés privées
  
Ligne 82 : Ligne 82 :
  
 
2- Créer une Autorité de Certification racine "CA ROOT"
 
2- Créer une Autorité de Certification racine "CA ROOT"
  openssl req -new -sha256 -x509 -days 3560 -key demoCA/private/cakey.pem -out demoCA/cacert.pem
+
  openssl req -new -sha256 -x509 -days 3560 -key CA/private/cakey.pem -out CA/cacert.pem
  
 
req : Directive de gestion des requêtes de certificats
 
req : Directive de gestion des requêtes de certificats
Ligne 106 : Ligne 106 :
  
 
=== Générer une liste de révocations ===
 
=== Générer une liste de révocations ===
  openssl ca -md sha256 -gencrl -out demoCA/ca-crl.pem -crldays 30
+
  openssl ca -md sha256 -gencrl -out CA/ca-crl.pem -crldays 30
  
 
== Intégrer une CA sur une Debian ==
 
== Intégrer une CA sur une Debian ==

Version du 27 avril 2018 à 14:20

Commandes générales OpenSSL

Uné clé privée

Génération d'une clé privée, avec 4096 bits, sans encodage particulier :

openssl genrsa -out monserveur.key 4096

Paramètres DH

De plus en plus nécessaire, des paramètres DH (Diffie Hellman)

openssl dhparam -out dhparam.pem 2048

Générer votre CSR (basé sur OpenSSL)

La clé RSA doit faire minimum 2048bits, mais 4096 est plus conseillé en ce moment

Pour générer votre couple Clé privée / CSR sous Apache/OpenSSL, vous devez utiliser la commande suivante :

openssl req -nodes -newkey rsa:4096 -sha256 -keyout monserveur.key -out serveur.csr

Le processus va créer 2 fichiers: un public en .csr et un privé en .key qu'il faudra absolument garder

Pour générer la CSR en utilisant une clé existante

openssl req -sha256 -out serveur.csr -key monserveur.key -new
Country Name (2 letter code) [AU]: FR
State or Province Name (full name) [Some-State]: .
Locality Name (eg, city) []: Paris
Organization Name (eg, company) [Internet Widgits Pty Ltd]: MaSociété
Organizational Unit Name (eg, section) []: IT
Common Name (eg, YOUR name) []: sousdomaine.domaine.tld
Email Address []:
A challenge password []:
An optional company name []:

Les champs optional company name et challenge password sont facultatifs.

Il est préférable de remplir le champ Email Address.

sousdomaine.domaine.tld indique l'adresse que vous voulez protéger.

Le contenu du fichier CSR généré vous sera alors demandé lors de la création de votre certificat.

Pour l'afficher et le communiquer à l'autorité de certification, il suffit ensuite de faire

cat serveur.csr

Générer la CSR basée sur un certif et une clé existante

openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey privateKey.key

Astuce : Dans le cas d'un certificat Wildcard, vous devrez entrer dans Common Name : *.votredomaine.tld

Attention : Un Wildcard protégera tout sous-domaine de second niveau, mais ne sera pas valide pour les sous-domaines de niveau supérieur. Le certificat SSL sera valide pour second.domaine.tld et tout autre sous-domaine que 'second'. Il ne sera pas valide pour troisieme.second.domaine.tld par contre.

SAN

SubjectAltName = plusieurs noms dans un seul certificat (multiadresses) http://apetec.com/support/GenerateSAN-CSR.htm

Créer un certificat autosigné et une clé

openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -sha256 -keyout privateKey.key -out certificate.crt

Créer un certificat autosigné avec une clé privée existante

openssl req -x509 -nodes -days 365 -sha256 -new -key /path/to/privateKey.key -out certificate.crt

Supprimer une passphrase d'une clée privée

openssl rsa -in privateKey.pem -out newPrivateKey.pem

Autorité de Certification CA

Créer une CA

- Créer l'arbo qui va bien :

mkdir -p CA/{newcerts,private}

- Créer les fichiers qui vont bien :

echo "01" > CA/serial
echo "01" > CA/crlnumber
touch CA/index.txt

- Créer une clé privée pour la CA (4096 bits, avec une passphrase)

openssl genrsa -des3 -out CA/private/cakey.pem 4096

genrsa : Directive pour générer des clés privées

3des : Chiffre la clé privée en 3DES

out : Enregistre la clé privée RSA dans le fichier passé en paramètre

4096 : Nombre de bits de la clé privée

2- Créer une Autorité de Certification racine "CA ROOT"

openssl req -new -sha256 -x509 -days 3560 -key CA/private/cakey.pem -out CA/cacert.pem

req : Directive de gestion des requêtes de certificats

new : Génère une nouvelle demande de certificat

x509 : Génère un certificat autosigné

days : Détermine la période de validité du certificat si l’option x509 est spécifiée

key : Utilise la clé contenue dans le fichier passé en paramètre

out : Enregistre dans le fichier passé en paramètre le résultat

Signer une CSR

openssl ca -in req.pem -out newcert.pem

Signer une CSR avec extention de la CA

openssl ca -in req.pem -extensions v3_ca -out newcert.pem

Révoquer un certiticat

openssl ca -revoke newcert.pem

Générer une liste de révocations

openssl ca -md sha256 -gencrl -out CA/ca-crl.pem -crldays 30

Intégrer une CA sur une Debian

Copier le certificat de la CA (ou le certificat auto-signé) au format PEM (avec extension .CRT) :

/usr/share/ca-certificates

Ajouter l'entrée dans le fichier

/etc/ca-certificates.conf

Exécuter la commande

dpkg-reconfigure ca-certificates

Accepter l'installation de nouveaux certificats et cocher ce qu'il faut.

Vérifications avec OpenSSL

Check a Certificate Signing Request (CSR)

openssl req -text -noout -verify -in CSR.csr

Check a private key

openssl rsa -in privateKey.key -check

Check a certificate

openssl x509 -in certificate.crt -text -noout

Check a PKCS#12 file (.pfx or .p12)

openssl pkcs12 -info -in keyStore.p12 

Conversions OpenSSL

Convert a DER file (.crt .cer .der) to PEM

openssl x509 -inform der -in certificate.cer -out certificate.pem

Convert a PEM file to DER

openssl x509 -outform der -in certificate.pem -out certificate.der

Convert a PKCS#12 file (.pfx .p12) containing a private key and certificates to PEM

openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes

You can add -nocerts to only output the private key or add -nokeys to only output the certificates.

Convert a PEM certificate file and a private key to PKCS#12 (.pfx .p12)

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

Debug

Concordance key/pem CSR CER/CRT

Le hash MD5 des modulo des clés, certificats, et CSR doivent concorder

openssl x509 -noout -modulus -in certificate.crt | openssl md5
openssl rsa -noout -modulus -in privateKey.key | openssl md5
openssl req -noout -modulus -in CSR.csr | openssl md5

Validation de la chaine CERT / CA / CHAIN

openssl verify -CAfile CAroot.crt -untrusted CAchain.crt ourdomain.com.crt
openssl verify -CAfile CAchain.pem report_iam_randstad_com.crt

Commandes générales IIS

Générer votre CSR sous IIS

Dans panneau de configuration, outils d'administration, sélectionnez le gestionnaire IIS. Faites un clic droit sur le site concerné, sélectionnez Propriétés. Dans l'onglet Sécurité de répertoire (Directory Security), cliquez sur Certificat de serveurs (Server certificate), choisissez Créer un certificat (Create a new certificate) et Préparer la demande, mais ne pas l'envoyer maintenant (Prepare the request now but send it later).


Le formulaire de création vous est maintenant proposé avec les mêmes champs qu'avec OpenSSL. Indiquez le fichier où stocker votre CSR en fin de processus. Il faudra alors copier-coller son contenu lors de l'activation du certificat dans l'interface de l'autorité de certification.


sources

http://www.batard.eu/2010/11/maitriser-les-certificats-avec-openssl/ https://weakdh.org/sysadmin.html