samedi 20 novembre 2010

Créer votre propre certificat avec Openssl

Voici un petit article vous permettant de créer vos propres certificats auto-signés avec Openssl. Ce certificat vous permettra de signer et d’encrypter vos mails (voir l’article suivant Signer vos mails à la maison, c’est possible)

Commençons par quelques précisions sur les formats des certificats:

  • .pem - (Privacy Enhanced Mail) contient un certificat dans le format Base64 encodé DER, entouré de "-----BEGIN CERTIFICATE-----" et "-----END CERTIFICATE-----"
  • .cer, .crt, .der – contient un certificat habituellement dans le format DER binaire
  • .p12 - PKCS#12, peut contenir des certificats publiques et les clefs privées associées, protégées par un mot de passe

Vous pouvez télécharger et installer Openssl pour Windows sur le site ci-dessous:

http://www.slproweb.com/products/Win32OpenSSL.html

Puis lancez une fenêtre de commande DOS et suivez la procédure ci-après.

Vous devez également télécharger le fichier de configuration pré-formaté Openssl que vous trouverez à l’URL suivante:

Télécharger le fichier de configuration d’Openssl !

Copiez ce fichier dans le répertoire “C:\Program Files\OpenSSL-Win32\bin”.

Puis, positionnez-vous dans le répertoire d’installation d’Openssl:

> cd "C:\Program Files\OpenSSL-Win32\bin"

Générez la paire de clefs (publique et privée) qui sera utilisée pour la création de votre certificat:

> openssl genrsa 1024 > %TEMP%\proxia.key

Générez votre certificat dans le format “cer”:

> openssl req -new -x509 -config openssl.conf -nodes -sha1 -days 365 -key %TEMP%\proxia.key > %TEMP%\proxia.cer

Convertissez votre certificat dans le format “pem”:

> openssl x509 -inform pem -outform pem -in %TEMP%\proxia.cer -out %TEMP%\proxia.pem

Transformez votre certificat dans le format “p12” pour y ajouter votre clef privée:

> openssl pkcs12 -export -out %TEMP%\proxia-mail.p12 -inkey %TEMP%\proxia.key -in %TEMP%\proxia.pem

C’est fait. Vous pouvez maintenant insérer votre certificat “proxia-mail.p12” dans votre carte à puce préférée (Gemalto .NET v2+) en utilisant l”outil en ligne Gemalto .NET Card Utilities.

Pour ceux qui veulent aller plus loin et générer un certificat permettant de faire du Smart Card Logon, vous trouverez ci-dessous les informations permettant de modifier le fichier “openssl.conf” (la procédure reste la même)

Dans la section [usr_cert] du fichier “openssl.conf”, modifier les lignes suivantes:

# For email protection
#extendedKeyUsage=critical,emailProtection
# For Smart Card Logon
LogonextendedKeyUsage=critical,1.3.6.1.4.1.311.20.2.2
 

3 commentaires:

  1. Bonjour,

    Je suis débutant en informatique (en fait, ce n'est pas mon métier). Votre didactitiel est très utile, mais je suis sous W7 et en tapant cette ligne de code:
    > openssl genrsa 1024 > %TEMP%\proxia.key

    J'ai ce message d'erreur qui apparaît et bloque la suite:
    "UNABLE TO WRITE 'RANDOM STATE' E IS 65537(0x10001)

    RépondreSupprimer
  2. Bonjour,
    Une piste à explorer!
    Essayez d'exécuter la commande ci-dessous avant d'effectuer vos opérations avec OpenSSL
    >set RANDFILE=.rnd
    Il semblerait que la variable RANDFILE ne soit pas initialisée sous Windows.
    Buz

    RépondreSupprimer
  3. bonjour j essaié la commande suivante
    openssl pkcs12 -in test.pfx -nocerts -out privateKey.pem -nodes
    il demande d'enté le mot de passe apres il plante un moment a l'netré du mot de passe error "can't read password"

    RépondreSupprimer

Partager avec...