Génération de certificats OpenSSL

De Admin How-To
Aller à : navigation, rechercher

Formats des certificats

  • PEM: Ce sont les formats les plus courants (texte, base64). Ces fichiers commencent et finissent généralement par -----BEGIN CERTIFICATE----- et -----BEGIN CERTIFICATE-----. Les extensions de fichiers sont :
    • .pem (plus fréquent, certificat) Privacy-enhanced Electronic Mail.
    • .crt (certificat) Plus souvent utilisé pour le format DER.
    • .cer (certificat) Plus souvent utilisé pour le format DER.
    • .key (clé privée).
  • DER: C'est un format fréquemment utilisé par Java. Il s'agit d'un format binaire.
    • .der (certificat ou clé privée)
    • .cer (certificat ou clé privée) Pour faire la différence entre PEM et DER, il faut consulter l'entête ou le pied du fichier.
  • PKCS#7/P7B: Au format texte, base64. Souvent utilisé par les produits Microsoft et Java Tomcat. Ces fichiers commencent et finissent généralement par -----BEGIN PKCS7----- et -----END PKCS7-----. Les extensions ne peuvent contenir qu'un certificat ou une chaine de certificats, pas les clés privées.
    • .p7 (obsolète ?)
    • .p7a (obsolète ?)
    • .p7b
    • .p7c
  • PFX/PKCS#12: Au format binaire. Ils peuvent être utilisés pour stocker un certificat serveur, des certificats intermédiaires et clés privées dans un fichier unique, cryptable. Ils sont généralement utilisés par Windows pour importer/exporter des certificats.
    • .pfx (prédécesseur de PKCS#12)
    • .p12


Prérequis

apt-get install gnutls-bin # certtool


Création d'une autorité de certification locale (CA)

Notes :

  • Cette étape peut être omise si vous disposez déjà d'un certificat racine d'autorité de certification locale.
  • Les commandes qui suivent doivent être exécutées en tant que root. (sudo bash)


Génération d'une clé privée :

certtool --generate-privkey --bits 4096 > /etc/ssl/private/fr.bitfarm.ca.key


Création d'un fichier d'informations /etc/ssl/infos/fr.bitfarm.ca.txt :

cn = BitFarm Initiative
unit = Certificate Authority
expiration_days = 3600
ca
cert_signing_key

Note: 3600 peut être remplacé par -1 pour déclencher une absence d'expiration.


Création du certificat racine auto-signé :

certtool --generate-self-signed \
--load-privkey /etc/ssl/private/fr.bitfarm.ca.key \
--template /etc/ssl/infos/fr.bitfarm.ca.txt \
--outfile /etc/ssl/certs/fr.bitfarm.ca.crt


Création d'un certificat auto-signé

Génération d'une clé privée pour le service :

certtool --generate-privkey --bits 4096 > /etc/ssl/private/fr.bitfarm.service.key


Création d'un fichier d'informations /etc/ssl/infos/fr.bitfarm.service.txt :

organization = BitFarm Initiative
unit = Service Departement
country = FR
cn = service.bitfarm.fr
expiration_days = 3600
tls_www_server
encryption_key
signing_key

Note: Vous pouvez également [le modèle de la page d'aide officielle] pour plus d'options.


Création du certificat du service :

certtool --generate-certificate \
--load-privkey /etc/ssl/private/fr.bitfarm.service.key \
--load-ca-certificate /etc/ssl/certs/fr.bitfarm.ca.crt \
--load-ca-privkey /etc/ssl/private/fr.bitfarm.ca.key \
--template /etc/ssl/infos/fr.bitfarm.service.txt \
--outfile /etc/ssl/certs/fr.bitfarm.service.crt


Empaquetage des informations du certificat PKCS12 (installation de certificats utilisateurs)

Pour la transmission et l'installation des certificats utilisateurs sur des appareils distants, une méthode simple et efficace est d'empaqueter tous les certificats nécessaires dans un fichier PKCS12. L'installation de celui-ci garantie l'installation sans peine de tous les certificats contenus.

openssl pkcs12 -export \
-inkey /etc/ssl/private/fr.bitfarm.service.key \
-in /etc/ssl/certs/fr.bitfarm.service.crt \
-name "service" \
-certfile /etc/ssl/certs/fr.bitfarm.ca.crt \
-out /etc/ssl/pkcs/fr.bitfarm.service.p12