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


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

Voici les fichiers disponibles:

  • .crt
  • server.csr 
  • server.key

470
2018-06-13 23:23


origine


Réponses:


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 base64, qui est lisible en ASCII, pas au format binaire. Le certificat est déjà au format PEM. Changez simplement l'extension en .pem.

Si le fichier est en binaire:

Pour le server.crt, vous utiliseriez

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

Pour server.key, utilisez openssl rsa au lieu de openssl x509.

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

S'il s'agit d'un serveur Web et que vous ne pouvez pas spécifier le chargement d'une clé privée et publique distincte:

Vous devrez peut-être concaténer les deux fichiers. Pour cet usage:

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

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


622
2018-06-13 23:31



Je devais faire cela pour un ELB AWS. Après avoir été battu par le dialogue plusieurs fois, finalement c'est 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 @floatingrock dit

Avec AWS, n'oubliez pas de préfixer le nom de fichier file://. Donc ça va ressembler à ça:

 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


185
2017-08-30 17:30



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

cat server.crt server.key > server.pem

71
2018-06-13 23:30



De plus, si vous ne voulez pas qu'il demande une phrase secrète, exécutez la commande suivante:

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

18
2017-10-21 08:35



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

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

14
2018-05-23 21:28



Ce que j'ai observé est: si vous utilisez openssl pour générer des certificats, il capture à la fois la partie de texte et la partie de certificat base64 dans le fichier crt. Le format pem strict dit (définition du wiki) que le fichier doit commencer et se terminer par BEGIN et END.

.pem - (Privacy Enhanced Mail) Certificat DER encodé en Base64,   entre "----- CERTIFICAT DE DÉBUT -----" et "----- FIN   CERTIFICAT-----"

Donc, pour certaines bibliothèques (que j'ai rencontrées en java) qui attendent un format pem strict, le crt généré échouerait à la validation en tant que 'format pem invalide'.

Même si vous copiez ou grepez les lignes avec BEGIN / END CERTIFICATE et collez-le dans un fichier cert.pem, cela devrait fonctionner.

Voici ce que je fais, pas très propre, mais ça marche pour moi, fondamentalement, il filtre le texte à partir de la ligne BEGIN:

grep -A 1000 BEGIN cert.crt> cert.pem


3
2018-02-14 08:52



J'essayais d'aller de Godaddy au moteur d'application. Qu'est-ce que l'astuce utilisait cette ligne:

openssl req -new -newkey rsa:2048 -nodes -keyout name.unencrypted.priv.key -out name.csr

Exactement tel quel, mais en remplaçant le nom par mon nom de domaine (pas que cela ait vraiment d'importance)

Et j'ai répondu à toutes les questions concernant le nom commun / l'organisation sous www.name.com

Ensuite, j'ai ouvert le csr, copié, collé dans papa, puis téléchargé, décompressé, navigué vers le dossier décompressé avec le terminal et entré:

cat otherfilegodaddygivesyou.crt gd_bundle-g2-g1.crt > name.crt

Puis j'ai utilisé ces instructions de Problème avec Google Apps Custom Domain SSL, qui étaient:

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

exactement comme est, sauf au lieu de privateKey.key j'ai utilisé name.unencrypted.priv.key, et au lieu de www_mydomain_com.crt, j'ai utilisé name.crt

Ensuite, j'ai téléchargé le public.pem à la console d'administration pour le "certificat X.509 codé PEM", et téléchargé le private.pem pour la "clé privée RSA encodée PEM non cryptée".

.. Et ça a finalement fonctionné.


3
2017-08-09 15:35



Essayer de télécharger un certificat GoDaddy à AWS J'ai échoué plusieurs fois, mais à la fin c'était assez simple. Pas besoin de convertir quoi que ce soit en .pem. Vous devez juste être sûr d'inclure le certificat de bundle GoDaddy dans le paramètre de chaîne, par ex.

aws iam upload-server-certificate
    --server-certificate-name mycert
    --certificate-body file://try2/40271b1b25236fd1.crt
    --private-key file://server.key
    --path /cloudfront/production/
    --certificate-chain file://try2/gdig2_bundle.crt

Et pour supprimer votre précédent téléchargement échoué, vous pouvez le faire

aws iam delete-server-certificate --server-certificate-name mypreviouscert

3
2018-06-07 08:32