Certificats SSL : Différence entre versions
(Page créée avec « = Commandes générales OpenSSL = == Uné clé privée == Génération d'une clé privée, avec 2048 bits, sans encodage particulier : openssl genrsa -out monserveur.key... ») |
|||
Ligne 1 : | Ligne 1 : | ||
= Commandes générales OpenSSL = | = Commandes générales OpenSSL = | ||
== Uné clé privée == | == Uné clé privée == | ||
− | Génération d'une clé privée, avec | + | Génération d'une clé privée, avec 4096 bits, sans encodage particulier : |
− | openssl genrsa -out monserveur.key | + | openssl genrsa -out monserveur.key 4096 |
== Paramètres DH == | == Paramètres DH == | ||
Ligne 9 : | Ligne 9 : | ||
== Générer votre CSR (basé sur OpenSSL) == | == Générer votre CSR (basé sur OpenSSL) == | ||
− | '''La clé RSA doit faire | + | '''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 : | Pour générer votre couple Clé privée / CSR sous Apache/OpenSSL, vous devez utiliser la commande suivante : | ||
− | openssl req -nodes -newkey rsa: | + | 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 | Le processus va créer 2 fichiers: un public en .csr et un privé en .key qu'il faudra absolument garder | ||
Ligne 55 : | Ligne 55 : | ||
== Créer un certificat autosigné et une clé == | == Créer un certificat autosigné et une clé == | ||
− | openssl req -x509 -nodes -days 3650 -newkey rsa: | + | 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 == | == Créer un certificat autosigné avec une clé privée existante == | ||
Ligne 71 : | Ligne 71 : | ||
echo "01" > demoCA/crlnumber | echo "01" > demoCA/crlnumber | ||
touch demoCA/index.txt | touch demoCA/index.txt | ||
− | - Créer une clé privée pour la CA ( | + | - Créer une clé privée pour la CA (4096 bits, avec une passphrase) |
− | openssl genrsa -des3 -out demoCA/private/cakey.pem | + | openssl genrsa -des3 -out demoCA/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 79 : | Ligne 79 : | ||
out : Enregistre la clé privée RSA dans le fichier passé en paramètre | 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" | 2- Créer une Autorité de Certification racine "CA ROOT" |
Version du 18 avril 2018 à 12:25
Sommaire
- 1 Commandes générales OpenSSL
- 1.1 Uné clé privée
- 1.2 Paramètres DH
- 1.3 Générer votre CSR (basé sur OpenSSL)
- 1.4 SAN
- 1.5 Créer un certificat autosigné et une clé
- 1.6 Créer un certificat autosigné avec une clé privée existante
- 1.7 Supprimer une passphrase d'une clée privée
- 1.8 Autorité de Certification CA
- 1.9 Intégrer une CA sur une Debian
- 2 Vérifications avec OpenSSL
- 3 Conversions OpenSSL
- 4 Debug
- 5 Commandes générales IIS
- 6 sources
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 demoCA/{newcerts,private}
- Créer les fichiers qui vont bien :
echo "01" > demoCA/serial echo "01" > demoCA/crlnumber touch demoCA/index.txt
- Créer une clé privée pour la CA (4096 bits, avec une passphrase)
openssl genrsa -des3 -out demoCA/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 demoCA/private/cakey.pem -out demoCA/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 demoCA/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