Comment obtenir le fichier .pem de fichiers .key et .crt?
Question
Comment puis-je créer un fichier PEM à partir d'un certificat SSL?
Ce sont les fichiers que j'ai disponibles:
-
.crt
-
server.csr
-
server.key
La solution
Vos clés peuvent déjà être au format PEM, mais juste nommé 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 le format binaire. Le certificat est déjà au format PEM. Il suffit de changer l'extension .pem.
Si le fichier est en binaire:
Pour la server.crt, utilisez
openssl x509 -inform DER -outform PEM -in server.crt -out server.crt.pem
Pour server.key, utilisez openssl rsa
en place de openssl x509
.
Le server.key est probablement votre clé privée et le fichier .crt est le retourné, signé, certificat X509.
Si cela est un serveur Web et vous ne pouvez pas spécifier le chargement d'une clé publique et privée séparée:
Vous devrez peut-être concaténer les deux fichiers. Pour cette utilisation:
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.
Autres conseils
Je avais besoin de faire cela pour une AWS ELB. Après avoir passé à tabac par la boîte de dialogue plusieurs fois, enfin 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 http://docs.aws. amazon.com/cli/latest/reference/iam/upload-server-certificate.html
Un fichier pem
contient le certificat et la clé privée. Il dépend du format de votre certificat / clé sont, mais sans doute il est aussi simple que cela:
cat server.crt server.key > server.pem
En outre, si vous ne voulez pas de demander un mot de passe, alors besoin d'exécuter la commande suivante:
openssl rsa -in server.key -out server.key
est la meilleure option pour créer un fichier .pem
openssl pkcs12 -in MyPushApp.p12 -out MyPushApp.pem -nodes -clcerts
Ce que j'ai observé est: si vous utilisez OpenSSL pour générer des certificats, il saisit à la fois la partie de texte et la partie du certificat base64 dans le fichier crt. Le format strict pem dit () que le fichier doit commencer et se terminer par BEGIN et FIN.
.pem - (Privacy Enhanced Mail) base64 codé certificat DER, compris entre "----- ----- BEGIN CERTIFICATE" et « ----- END CERTIFICAT ----- "
Donc, pour certaines bibliothèques (je rencontrais ce en java) qui attendent le strict format pem, le crt généré échouerait la validation comme un 'format pem non valide'.
Même si vous copiez ou grep les lignes avec BEGIN / CERTIFICAT DE FIN, et de le coller dans un fichier cert.pem, il devrait fonctionner.
Voici ce que je fais, pas très propre, mais fonctionne pour moi, au fond il filtre le texte à partir de la ligne BEGIN:
grep -A 1000 BEGIN cert.crt> cert.pem
Je suis en train de passer de GoDaddy à App Engine. Qu'est-ce que l'affaire utilisait cette ligne:
openssl req -new -newkey rsa:2048 -nodes -keyout name.unencrypted.priv.key -out name.csr
Exactement comme il est, mais en remplaçant le nom de mon nom de domaine (pas vraiment même importé)
Et je répondu à toutes les questions relatives au nom / organisation commune comme www.name.com
Alors j'ai ouvert la rse, copié, collé dans papa go, puis téléchargé, décompressé, naviguais dans le dossier décompressé avec le terminal et est entré:
cat otherfilegodaddygivesyou.crt gd_bundle-g2-g1.crt > name.crt
Alors je ces instructions de Problème avec SSL Google Apps Domaine personnalisé , qui étaient:
openssl rsa -in privateKey.key -text > private.pem
openssl x509 -inform PEM -in www_mydomain_com.crt > public.pem
exactement comme il est, sauf qu'au lieu de privateKey.key je name.unencrypted.priv.key, et au lieu de www_mydomain_com.crt, je name.crt
Alors je 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 le « non crypté PEM codé clé privée RSA » ..
.. Et enfin travaillé.
Essayer de télécharger un certificat GoDaddy AWS j'ai échoué à plusieurs reprises, mais à la fin il était assez simple. Pas besoin de convertir quoi que ce soit à .PEM. Il vous suffit d'être sûr d'inclure le certificat de paquet GoDaddy dans le paramètre de chaîne, par exemple.
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édente téléchargement a échoué, vous pouvez faire
aws iam delete-server-certificate --server-certificate-name mypreviouscert
- Télécharger le certificat de portail provisoire par AppleID,
- Certificat d'exportation de porte-clés et donner le nom (Certificates.p12),
- Ouvrez le terminal et le dossier goto où vous enregistrez le fichier ci-dessus Certificates.p12,
-
Run-dessous commandes:
a)
openssl pkcs12 -in Certificates.p12 -out CertificateName.pem -nodes
,b)
openssl pkcs12 -in Certificates.p12 -out pushcert.pem -nodes -clcerts
- Votre fichier .pem prêt "de pushcert.pem".
- Ouvrez le terminal.
- Accédez au dossier dans lequel votre certificat se trouve.
- Exécuter ci-dessous commande en remplaçant le nom de votre certificat.
OpenSSL pkcs12 -dans YOUR_CERTIFICATE.p12 YOUR_CERTIFICATE.pem -nodes -clcerts -out
- Espérons que cela fonctionnera !!