Jak przekonwertować klucz prywatny na klucz prywatny RSA?

Pozwól, że najpierw wyjaśnię moje pytanie. Kupiłem certyfikat od urzędu certyfikacji i użyłem następującego formatu do wygenerowania csr i klucza prywatnego:

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

Kiedy otwieram serwer.plik klucza, widzę, że zaczyna się od "- - - - - BEGIN PRIVATE KEY - - - - - "

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

Teraz chcę wgrać ten sam cert do AWS IAM, aby móc go używać przez Beanstalk load balancer. Używam następującej komendy 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

Zmieniam nazwy plików cert zgodnie z wymaganiami, ale ciągle pojawia się błąd: "400 MalformedCertificate Invalid Private Key."

Ciekawostką jest to, że na stronie Doc aws przykładowy klucz prywatny, który pokazują, zaczyna się od " - - - - - - - Begin RSA Private Key--------"

Czy istnieje sposób, aby przekonwertować mój klucz prywatny na klucz prywatny RSA przy użyciu openssl?

Author: Michael Currie, 2013-07-19

2 answers

Nowsze wersje OpenSSL mówią "BEGIN PRIVATE KEY", ponieważ zawierają klucz prywatny + OID, który identyfikuje typ klucza (jest to znany jako format PKCS8). Aby uzyskać stary klucz stylu (znany jako PKCS1 lub tradycyjny format OpenSSL), możesz 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
 114
Author: Paul Kehrer,
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-02-07 03:41:33

Może to być pomocne (nie wypisuj dosłownie ukośników '\' w poleceniach, mają one wskazywać, że "wszystko musi być w jednej linii"):

Które polecenie zastosować, gdy

Wydaje się, że wszystkie polecenia (w kolorze szarym) przyjmują dowolny typ pliku klucza (w kolorze zielonym) jako argument "in". Co jest miłe.

Oto ponownie komendy dla łatwiejszego kopiowania-wklejania:

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
 17
Author: David Tonhofer,
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-27 08:39:04