Jak dostać.plik pem z.klucz i.pliki crt?

Jak utworzyć plik PEM z certyfikatu SSL?

Są to pliki, które mam dostępne:

  • .crt
  • server.csr
  • server.key
Author: sdgfsdh, 2009-06-14

10 answers

Twoje klucze mogą być już w formacie PEM, ale tylko nazwane z .crt lub .klucz.

Jeśli zawartość pliku zaczyna się od -----BEGIN i możesz go odczytać w edytorze tekstu:

Plik używa base64, który jest czytelny w formacie ASCII, a nie binarnym. Certyfikat jest już w formacie PEM. Wystarczy zmienić rozszerzenie na .pem.

Jeśli plik jest w pliku binarnym:

Na serwer.crt, użyłbyś

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

Dla serwera.klucz, użyj openssl rsa w miejsce openssl x509.

Serwer.klucz jest prawdopodobnie twój klucz prywatny, a .plik crt jest zwracanym, podpisanym certyfikatem x509.

Jeśli jest to dla serwera WWW i nie można określić ładowania oddzielnego klucza prywatnego i publicznego:

Może być konieczne połączenie tych dwóch plików. W tym celu:

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

Zalecałbym nazywanie plików "includesprivatekey", aby pomóc Ci zarządzać prawami, które zachowujesz dla tego pliku.

 644
Author: maxwellb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-11 12:22:01

Musiałem to zrobić dla AWS ELB. Po tym, jak zostałem pobity przez dialog wiele razy, w końcu to dla mnie zadziałało:

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

Thanks NCZ

Edit: jak mówi @ floatingrock

W AWS nie zapomnij dodać nazwy pliku file://. Więc będzie wyglądało tak:

 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

 189
Author: slf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-23 16:57:48

Plik pem zawiera certyfikat i klucz prywatny. Zależy to od formatu, w jakim znajduje się twój certyfikat/klucz, ale prawdopodobnie jest to tak proste:

cat server.crt server.key > server.pem
 71
Author: sth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-15 18:47:40

Dodatkowo, jeśli nie chcesz, aby poprosiło o hasło, musisz uruchomić następujące polecenie:

openssl rsa -in server.key -out server.key
 18
Author: rahul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-15 18:48:11

Jest to najlepsza opcja do stworzenia .plik pem

openssl pkcs12 -in MyPushApp.p12 -out MyPushApp.pem -nodes -clcerts
 14
Author: GOrozco58,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-25 16:38:38

Zauważyłem, że jeśli używasz OpenSSL do generowania certyfikatów, przechwytuje on zarówno część tekstową, jak i część certyfikatu base64 w pliku crt. Ścisły format pem mówi (Definicja wiki ), że plik powinien zaczynać się i kończyć na BEGIN I END.

.pem - (Privacy Enhanced Mail) Base64 encoded der certificate, zamknięte pomiędzy "- - - - - - BEGIN - - - - - " I "- - - - - END Certyfikat - - - - - "

Więc dla niektórych bibliotek (spotkałem się z tym w java), które oczekują ścisłego formatu pem, wygenerowany crt nie zakończy walidacji jako "nieprawidłowy format pem".

Nawet jeśli skopiujesz lub grep linii z certyfikatem BEGIN/END i wkleisz go do cert.plik pem, powinien działać.

Oto co robię, nie bardzo czyste, ale działa dla mnie, w zasadzie filtruje tekst począwszy od linii startowej:

Grep-a 1000 BEGIN cert.crt > cert.pem

 3
Author: adityalad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-14 08:52:04

[3]}próbowałem przejść z godaddy do App engine. Co to za sztuczka było użycie tej linii:

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

Dokładnie tak, jak jest, ale zastąpienie nazwy nazwą mojej domeny (Nie, żeby to miało znaczenie)

I odpowiedziałem na wszystkie pytania dotyczące wspólnej nazwy / organizacji jako www.name.com

Następnie otworzyłem csr, skopiowałem go, wkleiłem w go daddy, a następnie pobrałem, rozpakowałem, przejrzałem do rozpakowanego folderu z terminalem i wpisałem:

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

Wtedy użyłem te instrukcje z problem z Google Apps Custom Domain SSL , które były:

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

Dokładnie tak, jak jest, tylko zamiast privateKey.klucz użyłem nazwy.niezaszyfrowane.priv.klucz, a zamiast www_mydomain_com.crt, użyłem nazwy.crt

Potem wrzuciłem publiczne.pem do admin console dla" pem encoded X. 509 certificate " i przesłał prywatny.pem dla "niezaszyfrowanego klucza prywatnego pem zakodowanego RSA"..

.. I to w końcu zadziałało.

 3
Author: Community,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:29

Próbując wgrać certyfikat GoDaddy do AWS zawiodłem kilka razy, ale w końcu było to dość proste. Nie trzeba niczego konwertować .pem. Musisz tylko upewnić się, że w parametrze łańcucha znajduje się certyfikat pakietu GoDaddy, np.]}

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

I aby usunąć poprzedni nieudany upload możesz zrobić

aws iam delete-server-certificate --server-certificate-name mypreviouscert
 3
Author: skensell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-07 08:32:41
  1. Pobierz certyfikat z tymczasowego portalu przez appleId,
  2. Export certificate from Key chain and give name (Certificates.p12),
  3. Otwórz folder terminal i goto, w którym zapisujesz powyższe Certyfikaty.plik p12,
  4. Uruchom poniższe polecenia:

    A) openssl pkcs12 -in Certificates.p12 -out CertificateName.pem -nodes,

    B) openssl pkcs12 -in Certificates.p12 -out pushcert.pem -nodes -clcerts

  5. Twoje .pem file ready " pushcert.pem".
 3
Author: iBapu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-28 12:05:06
  • Otwórz terminal.
  • Przejdź do folderu, w którym znajduje się twój certyfikat.
  • wykonaj poniższe polecenie, zastępując nazwę certyfikatem.

OpenSSL pkcs12-in YOUR_CERTIFICATE.p12-out YOUR_CERTIFICATE.pem-nodes-clcerts

    Mam nadzieję, że się uda!!
 0
Author: Dhaval H. Nena,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-27 09:40:04