Позвольте мне сначала пояснить свой вопрос. Я купил сертификат в ЦС и использовал следующий формат для создания csr и закрытого ключа:
openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr
Когда я открываю файл server.key, я вижу, что он начинается с "----- BEGIN PRIVATE KEY -----"
Я использую сертификат SSL на своем сервере, и все выглядит нормально.
Теперь я хочу загрузить тот же сертификат в AWS IAM, чтобы использовать его для балансировщика нагрузки beanstalk. Я использую следующую команду из этого документа 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
Я меняю имена файлов сертификатов по мере необходимости, но продолжаю получать эту ошибку: «400 MalformedCertificate Invalid Private Key».
Интересно то, что на странице документа aws показанный ими пример закрытого ключа начинается с "------- Begin RSA Private Key --------"
Есть ли способ преобразовать мой закрытый ключ в закрытый ключ RSA с помощью openssl?
источник
Invalid PEM structure, '-----BEGIN...' missing.
от таких инструментов, как Cyberduck, когда работает чистый SSH с тем же ключом.A client error (MalformedCertificate) occurred when calling the UploadServerCertificate operation: Unable to parse certificate. Please ensure the certificate is in PEM format.
и запускал это на своем закрытом ключе, исправил!Private Key
от аRSA Private Key
?openssl pkcs8 -topk8 -nocrypt -in privkey.pem
напишет PKCS8 в STDOUTЭто может оказать некоторую помощь (не записывайте обратную косую черту '\' в командах буквально, они предназначены для обозначения того, что «все должно быть в одной строке»):
Кажется, что все команды (серые) принимают любой тип ключевого файла (зеленый) в качестве аргумента "in". Что приятно.
Вот команды еще раз для упрощения копирования и вставки:
а также
источник
Чтобы преобразовать «BEGIN OPENSSH PRIVATE KEY» в «BEGIN RSA PRIVATE KEY»
источник