it-swarm.com.ru

Как преобразовать закрытый ключ в закрытый ключ RSA?

Позвольте мне сначала объяснить мой вопрос. Я купил сертификат в ЦС и использовал следующий формат для генерации 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 показанный ими пример закрытого ключа начинается с "------- Начать закрытый ключ RSA --------"

Есть ли способ конвертировать мой закрытый ключ в закрытый ключ RSA, используя openssl?

81
Silent User

В новых версиях OpenSSL написано BEGIN PRIVATE KEY, потому что они содержат закрытый ключ + OID, который идентифицирует тип ключа (это называется форматом PKCS8). Чтобы получить ключ старого стиля (известный как PKCS1 или традиционный формат OpenSSL), вы можете сделать это:

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

Альтернативно, если у вас есть ключ PKCS1 и вы хотите PKCS8:

openssl pkcs8 -topk8 -nocrypt -in privkey.pem
126
Paul Kehrer

Это может быть полезно (не записывайте в командах обратную косую черту '\', они означают, что "все должно быть в одной строке"):

Which Command to Apply When

Кажется, что все команды (серым цветом) принимают любой тип файла ключа (зеленым цветом) в качестве аргумента "in". Что приятно.

Вот команды снова для облегчения вставки копий:

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

а также

openssl rsa -check -in $FF
openssl rsa -text  -in $FF
22
David Tonhofer

Преобразовать "BEGIN OPENSSH PRIVATE KEY" в "BEGIN RSA PRIVATE KEY"

ssh-keygen -p -m PEM -f ~/.ssh/id_rsa
1
ahirapara