Pozwól mi najpierw wyjaśnić moje pytanie. Kupiłem certyfikat od CA 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 plik server.key, widzę, że zaczyna się od „----- BEGIN PRIVATE KEY -----”
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żyć do równoważenia obciążenia łodygi fasoli. Używam następującego polecenia z tego dokumentu aws 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 certyfikatów zgodnie z wymaganiami, ale ciągle pojawia się ten błąd: „400 MalformedCertificate Invalid Private Key”.
Ciekawostką jest to, że na stronie dokumentu aws pokazany przykładowy klucz prywatny zaczyna się od „------- Rozpocznij klucz prywatny RSA --------”
Czy istnieje sposób na przekonwertowanie mojego klucza prywatnego na klucz prywatny RSA przy użyciu openssl?
źródło
Invalid PEM structure, '-----BEGIN...' missing.
narzędzia takie jak Cyberduck, podczas gdy czysty SSH z tym samym kluczem działa.A client error (MalformedCertificate) occurred when calling the UploadServerCertificate operation: Unable to parse certificate. Please ensure the certificate is in PEM format.
i uruchomiłem to na moim kluczu prywatnym, naprawiłem to!Private Key
odRSA Private Key
?openssl pkcs8 -topk8 -nocrypt -in privkey.pem
zapisze PKCS8 do STDOUTMoże to trochę pomóc (nie zapisuj dosłownie odwrotnych ukośników „\” w poleceniach, mają one wskazywać, że „wszystko musi znajdować się w jednej linii”):
Wygląda na to, że wszystkie polecenia (na szaro) przyjmują dowolny typ pliku klucza (na zielono) jako argument „in”. Co jest miłe.
Oto ponownie polecenia ułatwiające kopiowanie i wklejanie:
i
źródło
Aby przekonwertować „BEGIN OPENSSH PRIVATE KEY” na „BEGIN RSA PRIVATE KEY”
źródło