2013-07-18 10 views
67

Pozwól mi najpierw wyjaśnić moje pytanie. Kupiłem certyfikatu z urzędu certyfikacji i używany następujący format wygenerować CSR i klucza prywatnego:Jak przekonwertować klucz prywatny na klucz prywatny RSA?

openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr 

Gdy otwieram plik server.key, widzę, że zaczyna się od „----- BEGIN KLUCZ PRYWATNY ----- "

Używam certyfikatu SSL na moim serwerze i wszystko wygląda dobrze.

Teraz chcę przesłać ten sam certyfikat do AWS IAM, aby móc go używać do równoważenia obciążenia przez beanstalk. I użyć następującego polecenia z tego AWS doc http://docs.aws.amazon.com/IAM/latest/UserGuide/InstallCert.html#SubmitCSRCertAuth

iam-servercertupload -b public_key_certificate_file -k privatekey.pem -s certificate_object_name 

mogę zmienić nazwy plików cert jak wymagane, ale wciąż otrzymuję ten błąd: „400 MalformedCertificate Nieprawidłowy klucz prywatny”

Interesującą rzeczą jest, na stronie AWS doc, próbka klucz prywatny, które pokazują, że zaczyna się od "------- Rozpocznij RSA Private Key --------"

Czy istnieje sposób na przekonwertowanie mojego klucza prywatnego na klucz prywatny RSA za pomocą openssl?

Odpowiedz

105

Nowsze wersje OpenSSL mówią BEGIN PRIVATE KEY, ponieważ zawierają klucz prywatny + OID, który identyfikuje typ klucza (jest to tak zwany format PKCS8). Aby uzyskać stary klucz styl (znany jako tradycyjnym formacie OpenSSL obu PKCS1 lub) można to zrobić:

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

Alternatywnie, jeśli masz klucz PKCS1 i chcesz PKCS8:

openssl pkcs8 -topk8 -nocrypt -in privkey.pem 
+0

Perfect !! Pracował jak urok. Wielkie dzięki! –

+1

Jest to również rozwiązanie do otrzymywania dziwnych komunikatów o błędach, takich jak "Nieprawidłowa struktura PEM", ----- BEGIN ... "brakuje" z narzędzi takich jak Cyberduck, podczas gdy czysty SSH z tym samym kluczem działa. – Daniel

+0

To zadziałało dla mnie. Użytkownicy systemu Windows mogą uzyskać OpenSSL tutaj: http://slproweb.com/products/Win32OpenSSL.html – ben

14

To może być z jakiejś pomocy (nie dosłownie wypisać backslashe „\” w poleceniach, są one oznaczać, że „wszystko musi być w jednej linii”):

Which Command to Apply When

To s uważa, że ​​wszystkie polecenia (na szaro) pobierają dowolny plik klucza (na zielono) jako argument "w". Co jest miłe.

Oto komendy ponownie dla łatwiejszego kopiowaniem wklejanie:

openssl rsa            -in $FF -out $TF 
openssl rsa -aes256          -in $FF -out $TF 
openssl pkcs8 -topk8 -nocrypt        -in $FF -out $TF 
openssl pkcs8 -topk8 -v2 aes-256-cbc -v2prf hmacWithSHA256 -in $FF -out $TF 

i

openssl rsa -check -in $FF 
openssl rsa -text -in $FF 
+0

Plik "graphml" obrazu (który można edytować np. za pomocą [yworks yed] (https://www.yworks.com/products/yed) można znaleźć [tutaj ] (https://s3-eu-west-1.amazonaws.com/lohlxadsvl/openssl_commands.graphml) –

Powiązane problemy