我试图使用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'
})第一个方法调用说我的密钥不是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)'
})与上面的错误相同。对我来说,这些文档对它的期望并不十分清楚。上面写着数据,我想这就是证书文件的内容。以前还有其他人遇到过这个问题吗?
我能够使用他们使用aws提供的file://将密钥、证书和链上传到ACM。
发布于 2018-01-04 22:45:41
试试AWS CLI,看看它是否适用于您:
aws acm import-certificate --certificate file://certificate.crt --private-key file://private_key.key --certificate-chain file://certificate_chain.crtaws -版本
注意:兼容版本:aws/1.14.18 Python/2.7.9 Windows/8 botocore/1.8.22
注:与版本不兼容:aws/1.10.21 Python/2.7.9 Windows/8 botocore/1.4.12
https://stackoverflow.com/questions/45489865
复制相似问题