« LES CERTIFICATS » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 1 : | Ligne 1 : | ||
= | = Les certificats avec OpenSSL= | ||
== Pré-requis == | |||
Afin de pouvoir générer des certificats sous linux, il faut avoir installé openssl | Afin de pouvoir générer des certificats sous linux, il faut avoir installé openssl | ||
Avant de commencer à générer ses certificats, il peut être utile de modifier le fichier openssl.cnf afin de modifier des paramètres par défaut. | Avant de commencer à générer ses certificats, il peut être utile de modifier le fichier openssl.cnf afin de modifier des paramètres par défaut. | ||
ce fichier se trouve ici : /etc/pki/tls/openssl.cnf | ce fichier se trouve ici : | ||
- Sous mandriva : | |||
/etc/pki/tls/openssl.cnf | |||
- Sous debian : | |||
/etc/ssl/openssl.cnf | |||
default_days = 1095 #correspond à 3 ans | default_days = 1095 #correspond à 3 ans | ||
Ligne 15 : | Ligne 19 : | ||
nsCaRevocationUrl = http://mon_site/ma_crl.crl | nsCaRevocationUrl = http://mon_site/ma_crl.crl | ||
== Génération d'une Autorité de certification (CA) == | |||
un script tout fait existe dans : /etc/pki/tls/misc | un script tout fait existe dans : /etc/pki/tls/misc ou /usr/lib/ssl/misc | ||
ce script | ce script s’appelle CA ou CA.sh et va générer une CA qui permettra de générer et signer les certificats. | ||
./CA -newca | ./CA -newca | ||
va générer une CA valide 3 ans et les fichiers suivants | va générer une CA valide 3 ans et les fichiers suivants | ||
il est possible en modifiant le script d' | il est possible en modifiant le script d'augmenter la durée de validité de la CA | ||
/etc/pki/tls/cakey.pem | /etc/pki/tls/cakey.pem | ||
/etc/pki/tls/careq.pem | /etc/pki/tls/careq.pem | ||
/etc/pki/tls/cacert.pem | /etc/pki/tls/cacert.pem | ||
== Génération des certificats == | |||
Il existe plusieurs format de certificats en fonction de l'utilisation que nous en | Il existe plusieurs format de certificats en fonction de l'utilisation que nous en faisons. | ||
Format pfx ou p12 utilisé sous windows principalement. | Format pkcs12 (.pfx ou .p12) utilisé sous windows principalement. | ||
Format | Format PEM (crt, pem, der,...) utilisé principalement sous linux pour apache par exemple. | ||
=== Générer un certificat PEM === | |||
/usr/bin/openssl req -new -nodes -keyout key.pem -out req.pem | /usr/bin/openssl req -new -nodes -keyout key.pem -out req.pem | ||
/usr/bin/openssl ca -policy policy_anything -out cert.pem -infiles req.pem | /usr/bin/openssl ca -policy policy_anything -out cert.pem -infiles req.pem | ||
Ligne 38 : | Ligne 42 : | ||
Il suffit pour l'utiliser de modifier la configuration d'apache et de le relancer | Il suffit pour l'utiliser de modifier la configuration d'apache et de le relancer | ||
=== Générer un certificat pkcs12 === | |||
Ici la clé et la demande de certificat sont dans le même fihier (req.pem) | Ici la clé et la demande de certificat sont dans le même fihier (req.pem) | ||
/usr/bin/openssl req -new -keyout req.pem -out req.pem $DAYS | /usr/bin/openssl req -new -keyout req.pem -out req.pem $DAYS | ||
Ligne 44 : | Ligne 48 : | ||
openssl pkcs12 -export -in cert.pem -inkey req.pem -out cert.pfx | openssl pkcs12 -export -in cert.pem -inkey req.pem -out cert.pfx | ||
=== Générer un certificat pour le mail (ex : sendmail, pop, webmin, ...) === | |||
Pour ce type de certificat on utilise la même ligne de commande que pour un cert mais il faut faire des modification manuelles sur le contenu du fichier cert.pem pour qu'il | Pour ce type de certificat on utilise la même ligne de commande que pour un cert mais il faut faire des modification manuelles sur le contenu du fichier cert.pem pour qu'il ressemble à ceci : | ||
-----BEGIN CERTIFICATE----- | -----BEGIN CERTIFICATE----- | ||
DQEBAQUAA0sAMEgCQQC9/Be7ZUIdu/3gPp3pZyX98LQP343ehfdNEDLoXUx | DQEBAQUAA0sAMEgCQQC9/Be7ZUIdu/3gPp3pZyX98LQP343ehfdNEDLoXUx | ||
Ligne 54 : | Ligne 58 : | ||
-----END RSA PRIVATE KEY----- | -----END RSA PRIVATE KEY----- | ||
==== Révoquer un certificat | == Opérations sur les certificats == | ||
=== Révoquer un certificat === | |||
openssl ca -revoke /etc/pki/tls/misc/cert.pem -key openssl ca -revoke /etc/pki/tls/misc/$CERTIFICAT_REVOKE -key $PRIVATE_KEY_PASSWORD | openssl ca -revoke /etc/pki/tls/misc/cert.pem -key openssl ca -revoke /etc/pki/tls/misc/$CERTIFICAT_REVOKE -key $PRIVATE_KEY_PASSWORD | ||
Après une révocation d'un certificat il faut | Après une révocation d'un certificat il faut régénérer la crl afin d’interdire l'utilisation du certificat que nous venons de révoquer | ||
=== Générer une CRL === | |||
openssl ca -gencrl -out ma_crl.crl -key pass_de_la_cle_prive_de_la_CA | openssl ca -gencrl -out ma_crl.crl -key pass_de_la_cle_prive_de_la_CA | ||
=== changer le format d'un certificat === | |||
=== Afficher le contenu d'une CSR=== | |||
openssl req -in moncertificat.csr -text -noout | |||
Voici un extrait des informations affichée : | |||
Certificate Request: | |||
Data: | |||
Version: 0 (0x0) | |||
Subject: C=country, ST=state, L=ville, O=organisation, OU=organisation Unit, CN=common name/emailAddress=email | |||
Subject Public Key Info: | |||
Public Key Algorithm: rsaEncryption | |||
RSA Public Key: (2048 bit) | |||
Modulus (2048 bit): | |||
[[category:système]] | [[category:système]] | ||
[[category:Linux]] | [[category:Linux]] |
Version du 5 juillet 2011 à 10:39
Les certificats avec OpenSSL
Pré-requis
Afin de pouvoir générer des certificats sous linux, il faut avoir installé openssl
Avant de commencer à générer ses certificats, il peut être utile de modifier le fichier openssl.cnf afin de modifier des paramètres par défaut. ce fichier se trouve ici :
- Sous mandriva : /etc/pki/tls/openssl.cnf - Sous debian : /etc/ssl/openssl.cnf
default_days = 1095 #correspond à 3 ans countryName_default = FR stateOrProvinceName_default = votre_région localityName_default = votre_ville 0.organizationName_default = votre_organisation ou société organizationalUnitName_default = Autorite de certification nsCaRevocationUrl = http://mon_site/ma_crl.crl
Génération d'une Autorité de certification (CA)
un script tout fait existe dans : /etc/pki/tls/misc ou /usr/lib/ssl/misc ce script s’appelle CA ou CA.sh et va générer une CA qui permettra de générer et signer les certificats.
./CA -newca va générer une CA valide 3 ans et les fichiers suivants il est possible en modifiant le script d'augmenter la durée de validité de la CA /etc/pki/tls/cakey.pem /etc/pki/tls/careq.pem /etc/pki/tls/cacert.pem
Génération des certificats
Il existe plusieurs format de certificats en fonction de l'utilisation que nous en faisons.
Format pkcs12 (.pfx ou .p12) utilisé sous windows principalement. Format PEM (crt, pem, der,...) utilisé principalement sous linux pour apache par exemple.
Générer un certificat PEM
/usr/bin/openssl req -new -nodes -keyout key.pem -out req.pem /usr/bin/openssl ca -policy policy_anything -out cert.pem -infiles req.pem Le fichier key.pem sera la clé privée et cert.pem le certificat (public) Il suffit pour l'utiliser de modifier la configuration d'apache et de le relancer
Générer un certificat pkcs12
Ici la clé et la demande de certificat sont dans le même fihier (req.pem) /usr/bin/openssl req -new -keyout req.pem -out req.pem $DAYS openssl ca -policy policy_anything -out $cert.pem -infiles req.pem openssl pkcs12 -export -in cert.pem -inkey req.pem -out cert.pfx
Générer un certificat pour le mail (ex : sendmail, pop, webmin, ...)
Pour ce type de certificat on utilise la même ligne de commande que pour un cert mais il faut faire des modification manuelles sur le contenu du fichier cert.pem pour qu'il ressemble à ceci :
-----BEGIN CERTIFICATE----- DQEBAQUAA0sAMEgCQQC9/Be7ZUIdu/3gPp3pZyX98LQP343ehfdNEDLoXUx -----END CERTIFICATE----- -----BEGIN RSA PRIVATE KEY----- P2N/saoLUEhBAiEAgpKf1jaYPNzBVovQeqgoeWdiFXJnTwLx7ExPMJ0srAECIBc8 -----END RSA PRIVATE KEY-----
Opérations sur les certificats
Révoquer un certificat
openssl ca -revoke /etc/pki/tls/misc/cert.pem -key openssl ca -revoke /etc/pki/tls/misc/$CERTIFICAT_REVOKE -key $PRIVATE_KEY_PASSWORD
Après une révocation d'un certificat il faut régénérer la crl afin d’interdire l'utilisation du certificat que nous venons de révoquer
Générer une CRL
openssl ca -gencrl -out ma_crl.crl -key pass_de_la_cle_prive_de_la_CA
changer le format d'un certificat
Afficher le contenu d'une CSR
openssl req -in moncertificat.csr -text -noout Voici un extrait des informations affichée :
Certificate Request: Data: Version: 0 (0x0) Subject: C=country, ST=state, L=ville, O=organisation, OU=organisation Unit, CN=common name/emailAddress=email Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (2048 bit) Modulus (2048 bit):