aws-sdk-ruby Aws::ACM::Client#import_certificate Пути к файлам или их содержимое

Я пытаюсь использовать aws-sdk-ruby импортировать сертификаты в ACM. Тем не менее, когда я пытаюсь использовать Aws::ACM::Client#import_certificate используя любой из следующих методов, трассировка стека говорит мне, что мой закрытый ключ не 1024 или 2048. Если бы это было так, Entrust не подписал бы мой сертификат. Я также рассказал openssl Программа для генерации как 2048.

Сообщение об ошибке

Закрытый ключ не поддерживается. Разрешены только 1024-битные и 2048-битные закрытые ключи RSA.

Первый пример кода

def acm_upload(options)
  require 'aws-sdk'
  @aws_region = ENV['AWS_REGION'] || ENV['AWS_DEFAULT_REGION'] || 'us-west-2'
  @aws_profile = ENV['AWS_PROFILE'] || ENV['AWS_DEFAULT_PROFILE'] || 'default'

  acm = Aws::ACM::Client.new(region: @aws_region, profile: @aws_profile)
  begin
    puts '=> Uploading Key, Cert, and Chain to ACM.'
    aws_response = acm.import_certificate({
      certificate: options[:cert_name],
      private_key: options[:key_name],
      certificate_chain: options[:chain_name],
    })
  rescue Aws::ACM::Errors::ServiceError => e
    puts 'An AWS ACM Service Error has occured.'
    raise e.message
  rescue Aws::Errors::ServiceError => e
    puts 'An AWS Error has occured.'
    raise e.message
  end

  puts aws_response
end

acm_upload({
  cert_name: './ssl/certificate/signed_cert.crt',
  key_name: './ssl/key/private_key.pem',
  chain_name: './ssl/chains/cert_chain.crt'
})

Первый вызов метода говорит, что мой ключ не 2048 бит. Тогда второй метод также делает:

acm_upload({
  cert_name: File.read('./ssl/certificate/signed_cert.crt'),
  key_name: File.read('./ssl/key/private_key.pem'),
  chain_name: File.read('./ssl/chains/cert_chain.crt)'
})

Та же ошибка, что и выше. Документация не очень ясна для меня о том, чего она ожидает. Это говорит о данных, и я решил, что это содержимое файла сертификата. Кто-нибудь еще имел эту проблему раньше?

Я смог загрузить ключ, сертификат и цепочку в ACM, используя aws Python CLI, который они предоставляют, используя file://,

1 ответ

Попробуйте интерфейс командной строки AWS и посмотрите, подходит ли вам это:

aws acm import-certificate --certificate file://certificate.crt --private-key file://private_key.key --certificate-chain file://certificate_chain.crt

AWS - версия

примечание: совместимо с версией: aws-cli/1.14.18 Python/2.7.9 Windows/8 botocore/1.8.22

примечание: НЕ совместимо с версией: aws-cli/1.10.21 Python/2.7.9 Windows/8 botocore/1.4.12

Другие вопросы по тегам