aws-sdk-ruby Aws :: ACM :: Client#import_certificate文件路径或文件内容

问题描述 投票:0回答:1

我正在尝试使用aws-sdk-ruby将证书导入ACM。但是,当我尝试使用以下任一方法使用Aws::ACM::Client#import_certificate时,堆栈跟踪告诉我我的私钥不是1024或2048.如果是这样的情况,Entrust将不会签署我的证书。我还告诉openssl程序生成为2048。

错误消息

私钥不受支持。仅允许RSA 1024位和2048位私钥。

第一个代码示例

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'
})

第一个方法调用说我的密钥不是2048bit。然后第二种方法也可以:

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)'
})

与上面相同的错误。关于它的期望,我的文档不是很清楚。它说数据,我认为这是证书文件的内容。有没有其他人之前有这个问题?

我能够使用aws提供的file:// Python CLI将密钥,证书和链上传到ACM。

ruby amazon-web-services aws-sdk aws-sdk-ruby
1个回答
0
投票

尝试使用AWS CLI,看看它是否适合您:

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

aws --version

注意:与版本兼容: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

© www.soinside.com 2019 - 2024. All rights reserved.