Konwersja certyfikatu PKCS#12 na pem przy użyciu OpenSSL
Mam OpenSSL x64 Na Windows 7, który pobrałem z openssl-for-windows na Google Code. Próbuję biec:
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 używając OpenSSL?
5 answers
Spróbuj:
openssl pkcs12 -in path.p12 -out newfile.crt.pem -clcerts -nokeys
openssl pkcs12 -in path.p12 -out newfile.key.pem -nocerts -nodes
Potem masz:
- certyfikat w newfile.crt.pem
- klucz prywatny w newfile.klucz.pem
Aby umieścić certyfikat i klucz w tym samym pliku, użyj następującego
openssl pkcs12 -in path.p12 -out newfile.pem
Jeśli chcesz wprowadzić hasło PKCS # 12 bezpośrednio z linii poleceń (np. skryptu), po prostu dodaj -passin pass:${PASSWORD}
:
openssl pkcs12 -in path.p12 -out newfile.crt.pem -clcerts -nokeys -passin 'pass:P@s5w0rD'
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
2018-03-27 13:33:54
Wystarczy podać hasło. Możesz to zrobić w tym samym wierszu poleceń z następującą składnią:
openssl pkcs12 -export -in "path.p12" -out "newfile.pem" -passin pass:[password]
Zostanie wyświetlony monit 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 niezaszyfrowany (zwykły tekst):
openssl pkcs12 -export -in "path.p12" -out "newfile.pem" -passin pass:[password] -nodes
Więcej informacji: http://www.openssl.org/docs/apps/pkcs12.html
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-07-23 20:21:26
Jeśli możesz używać Pythona, jest jeszcze łatwiej, jeśli masz moduł pyopenssl
. Tutaj jest:
from OpenSSL import crypto
# May require "" for empty password depending on version
with open("push.p12", "rb") as file:
p12 = crypto.load_pkcs12(file.read(), "my_passphrase")
# PEM formatted private key
print crypto.dump_privatekey(crypto.FILETYPE_PEM, p12.get_privatekey())
# PEM formatted certificate
print crypto.dump_certificate(crypto.FILETYPE_PEM, p12.get_certificate())
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
2018-02-06 19:14:25
Będzie to działać z plikiem .pem
, który ma klucz prywatny i certyfikat w tym samym pliku (próbowałem tego z Apple Push Notification certificate)
(PushNotif.pem
zawiera klucz prywatny i cert w jednym pliku)
$ OpenSSL pkcs12-export - in PushNotif.pem-inkey PushNotif.pem-out PushNotif.p12
Wpisz szukaną frazę: PushNotif.pem:
Wpisz Hasło Eksportu:
Verifying-Enter Export Password:
Po wprowadzeniu hasła jesteś gotowy.
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
2014-02-17 17:15:17
W związku z tym, że NGINX nie jest w stanie stworzyć pliku klucza, nie jest w stanie stworzyć pliku klucza.]}
openssl pkcs12 -in file.pfx -out file.key -nocerts -nodes
Następnie musiałem edytować plik klucza i usunąć całą zawartość do -----BEGIN PRIVATE KEY-----
. Po tym NGINX zaakceptował plik klucza.
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-09-17 20:44:56