Mam OpenSSL x64 na Windows 7, który pobrałem z openssl-for-windows na Google Code . Próbuję uruchomić:
openssl pkcs12 -export -in "path.p12" -out "newfile.pem"
ale dostaję błąd.
unable to load private key
Jak wyodrębnić certyfikat w PEM ze sklepu PKCS # 12 przy użyciu OpenSSL?
Odpowiedzi:
Próbować:
Następnie masz:
Aby umieścić certyfikat i klucz w tym samym pliku, wykonaj następujące czynności
Jeśli musisz wprowadzić hasło PKCS # 12 bezpośrednio z wiersza poleceń (np. Skryptu), po prostu dodaj
-passin pass:${PASSWORD}
:źródło
openssl pkcs12 -in path.p12 -out newfile.pem
Musisz tylko podać hasło. Możesz to zrobić w tym samym wierszu polecenia, stosując następującą składnię:
Zostaniesz poproszony o podanie hasła do zaszyfrowania klucza prywatnego w pliku wyjściowym. Dołącz opcję „węzły” w powyższym wierszu, jeśli chcesz wyeksportować klucz prywatny w postaci niezaszyfrowanej (zwykły tekst):
Więcej informacji: http://www.openssl.org/docs/apps/pkcs12.html
źródło
Jeśli możesz używać Pythona, jeszcze łatwiej jest, jeśli masz
pyopenssl
moduł. Oto on:źródło
file
a nieopen
? Chcę to po prostu zrozumieć, gdy będę go używać w przyszłości (aby uprościć moje rozwiązanie, wywołując openssh jako polecenie)open("push.p12", 'rb').read()
.with open("push.pem", "wb") as fobj: fobj.write(crypto.dump_certificate(crypto.FILETYPE_PEM, p12.get_certificate()))
aby napisać certyfikat iwith open("push.key", "wb") as fobj: fobj.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, p12.get_privatekey()))
klucz.Miałem plik PFX i potrzebowałem utworzyć plik KEY dla NGINX, więc zrobiłem to:
Następnie musiałem edytować plik KEY i usunąć całą zawartość do
-----BEGIN PRIVATE KEY-----
. Następnie NGINX zaakceptował plik KEY.źródło
Jeśli potrzebujesz pliku PEM bez hasła, możesz skorzystać z tego rozwiązania.
Po prostu skopiuj i wklej klucz prywatny i certyfikat do tego samego pliku i zapisz jako .pem.
Plik będzie wyglądał następująco:
To jedyny sposób, w jaki znalazłem przesyłanie certyfikatów na urządzenia Cisco dla HTTPS.
źródło