Convertir un certificat TLS de DER en PEM

On oublie trop souvent que c'est le contenu d'un fichier qui porte l'encodage utilisé dans ce fichier et non l'extension du nom de fichier ;)

Le cas d'utilisation est celui où l'on dispose d'un certificat encodé en DER alors qu'on souhaite disposer du même certificat encodé en PEM. Pour compliquer les choses, le fichier de départ utilise l'extension “.crt” qui ne rien de l'encodage :-(

OpenSSL permet d'effectuer la conversion :

$ openssl x509 -inform DER -in my_cert.crt -outform PEM -out my_cert.pem -text
Un moyen rapide de savoir si votre certificat est encodé en DER est :
  • en ligne de commande : file my_cert.crt renverra “data” si c'est du DER et “ASCII TEXT” si c'est du PEM
  • en mode graphique, ouvrir le fichier avec un éditeur de texte et constater si le contenu est intégralement lisible.
En savoir plus
1)
Un message d'erreur pour indiquera qu'openssl n'arrive pas à lire le certificat si vous avez oublié cette option.