777 votes

Comment obtenir le fichier .pem à partir des fichiers .key et .crt ?

Comment puis-je créer un fichier PEM à partir d'un certificat SSL ?

Voici les fichiers dont je dispose :

  • .crt
  • server.csr
  • server.key

4 votes

Dans l'autre sens : Convertir .pem à .crt y .key .

1018voto

maxwellb Points 3713

Vos clés peuvent déjà être au format PEM, mais simplement nommées avec .crt ou .key.

Si le contenu du fichier commence par -----BEGIN et vous pouvez le lire dans un éditeur de texte :

Le fichier utilise la base64, qui est lisible en ASCII, et non en format binaire. Le certificat est déjà au format PEM. Il suffit de changer l'extension en .pem.

Si le fichier est en binaire :

Pour le server.crt, vous devez utiliser

openssl x509 -inform DER -outform PEM -in server.crt -out server.crt.pem

Pour server.key, utilisez openssl rsa à la place de openssl x509 .

Le fichier server.key est probablement votre clé privée, et le fichier .crt est le certificat x509 retourné, signé.

Si c'est pour un serveur Web et que vous ne pouvez pas spécifier le chargement d'une clé privée et publique séparée :

Vous devrez peut-être concaténer les deux fichiers. Pour cela, utilisez :

cat server.crt server.key > server.includesprivatekey.pem

Je vous recommande de nommer les fichiers avec "includesprivatekey" pour vous aider à gérer les permissions que vous gardez avec ce fichier.

2 votes

Vérifiez le format du server.key. J'ai seulement supposé que c'était RSA. Mais la lecture de la première ligne du fichier vous le dira probablement.

15 votes

Je vous informe que cat server.crt server.key > server.pem ne place pas le commentaire ouvert sur sa propre ligne, ce qui semble être une exigence. Le courrier m'a fait vivre un enfer et il m'a fallu des heures pour comprendre ce qui n'allait pas.

1 votes

Merci Graham. Les différents outils génèrent les fichiers différemment et, en fin de compte, une certaine vérification est utile. Lorsque j'ai effectué ces étapes, les fichiers se terminaient par un saut de ligne, par exemple.

270voto

slf Points 15327

J'avais besoin de faire cela pour un ELB AWS. Après avoir été battu par le dialogue à plusieurs reprises, j'ai finalement trouvé ce qui a fonctionné pour moi :

openssl rsa -in server.key -text > private.pem
openssl x509 -inform PEM -in server.crt > public.pem

Merci NCZ

Edit : Comme le dit @floatingrock

Avec AWS, n'oubliez pas de faire précéder le nom du fichier de la mention file:// . Donc ça ressemblera à :

 aws iam upload-server-certificate --server-certificate-name blah --certificate-body file://path/to/server.crt --private-key file://path/to/private.key --path /cloudfront/static/

http://docs.aws.amazon.com/cli/latest/reference/iam/upload-server-certificate.html

21 votes

Avec AWS, n'oubliez pas de faire précéder le nom du fichier de la mention file:// . Donc ça ressemblera à : aws iam upload-server-certificate --server-certificate-name blah --certificate-body file://~/Desktop/server.crt --private-key file://~/Desktop/private.key --path /cloudfront/static/

1 votes

La deuxième commande ne fait rien si votre entrée est un fichier pem, donc en supposant que c'est le cas, vous avez seulement besoin de la première commande

0 votes

Génial ! Cela a bien fonctionné pour moi ! J'ai juste converti mes fichiers .key et .crt en .pem en utilisant vos lignes de code et ensuite j'ai téléchargé (copier/coller) via la console AWS. Merci !

106voto

sth Points 91594

A pem contient le certificat et la clé privée. Cela dépend du format de votre certificat/clé, mais c'est probablement aussi simple que cela :

cat server.crt server.key > server.pem

0 votes

Je continue à avoir -bash: server.key.pem: Permission denied

2 votes

@tq : Cela signifie que vous n'êtes pas autorisé à lire ou écrire ce fichier.

0 votes

Merci @sth je vais chercher la permission. mais je faisais cela avec des commandes sudo

34voto

rahul Points 101

De plus, si vous ne voulez pas qu'il vous demande une phrase de passe, vous devez exécuter la commande suivante :

openssl rsa -in server.key -out server.key

16 votes

Si vous voulez un fichier commençant par -----BEGIN RSA PRIVATE KEY----- et en avoir un qui commence par -----BEGIN ENCRYPTED PRIVATE KEY----- c'est la commande que vous voulez utiliser.

21voto

user3116249 Points 1

C'est la meilleure option pour créer un fichier .pem

openssl pkcs12 -in MyPushApp.p12 -out MyPushApp.pem -nodes -clcerts

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X