2017-08-03 1 views
0

Je suis en train d'utiliser le aws-sdk-ruby pour importer des certificats à ACM. Toutefois, lorsque j'essaie d'utiliser le Aws::ACM::Client#import_certificate en utilisant l'une des méthodes suivantes, la trace de la pile indique que ma clé privée n'est pas 1024 ou 2048. Si tel était le cas, Entrust n'aurait pas signé mon certificat. J'ai aussi dit que le programme openssl pour générer en 2048.-aws sdk-rubis Aws :: ACM :: chemins de fichier # client de import_certificate ou le contenu des fichiers

Le message d'erreur

La clé privée est pas pris en charge. Seules les clés privées RSA 1024 bits et 2048 bits sont autorisées.

Premier exemple de code

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

Le premier appel de méthode dit ma clé n'est pas 2048bit. Alors la deuxième méthode fait aussi bien:

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

Même erreur que ci-dessus. La documentation n'est pas très claire pour moi sur ce qu'elle attend. Il dit des données, et j'ai pensé que c'était le contenu du fichier de certificat. Quelqu'un d'autre a-t-il déjà eu ce problème?

J'ai été en mesure de télécharger la clé, le certificat et la chaîne dans ACM en utilisant la CLI aws Python qu'ils fournissent en utilisant file://.

Répondre

0

Essayez l'AWS CLI et voir si cela fonctionne pour vous:

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

aws --version

Note: compatible avec la version: aws-cli/14.01.18 Python/2.7.9 de Windows/8 botocore/1.8.22

Note: pas compatible avec la version: aws-cli/1.10.21 Python/2.7.9 de Windows/8 botocore/1.4.12

+0

J'ai pu télécharger la clé, un certificat , et chaîne à ACM en utilisant l'AWS Python CLI que le y fournir en utilisant le fichier: //. – Pred