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 LogonLogonextendedKeyUsage=critical,1.3.6.1.4.1.311.20.2.2
Bonjour,
RépondreSupprimerJe 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)
Bonjour,
RépondreSupprimerUne 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
bonjour j essaié la commande suivante
RépondreSupprimeropenssl 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"
Bonjour,
RépondreSupprimervotre article date mais il reste d'actualité et j'y suis arrivé en recherchant de l'info sur OpenSSL. Merci pour ces cas d'usage bien pragmatiques qui m'ont été fort utiles.
Je voulais simplement commenter votre présentation des formats de codage PEM et DER possibles qui à mon avis peut prêter à confusion, notamment pour les personnes qui font l'amalgame entre formats de codage et extension de nom de certificat (CER, CRT, PEM, DER).
Vous écrivez :
.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
Pour l'extension PEM, j'aurais plutôt écrit : contient un certificat encodé DER (ASN.1) dans le format ASCII Base64 , entouré de "-----BEGIN CERTIFICATE-----" et "-----END CERTIFICATE-----".
Pour l'extension DER, j'aurais plutôt écrit : contient un certificat habituellement encodé dans le format DER binaire natif ASN.1
Car tous les certificats X509 sont encodés DER par définition même de la RFC et sont donc représentés par une suite binaire de codes hexadécimaux relatifs à la syntaxe ASN.1. Ils peuvent donc restés natifs ou être encodés une deuxième fois en code ASCII Base64 (variante MIME) pour permettre leur diffusion plus pratique, notamment via les systèmes de messagerie.
Je crois utile de préciser que la pratique d'usage d'associer une extension de nom de certificat à l'encodage utilisé est à considérer avec prudence parce qu'elle n'est pas toujours respectée. En outre, l'extension CER est plutôt utilisée en environnement Unix/Linux et CERT est son pendant créé par Microsoft pour les environnements Windows. Ces deux types de certificats CER et CRT peuvent été encodés en DER binaire ou DER ASCII base64. Les exentsions DER et PEM sont moins équivoques.
Qu'en pensez-vous ?
Bien cordialement
Merci beaucoup pour ces précisions.
SupprimerBien cordialement.
Bonjour,
RépondreSupprimerapres longue recherche, je trouve enfin les solutions concernant ces certificats
merci pour ces tutos, je me remets dans le bain
samuel
Bon courage pour la reprise :-)
Supprimer