2017-08-03 1 views
0

Ich versuche, die aws-sdk-ruby zu verwenden, um Zertifikate in ACM zu importieren. Wenn ich jedoch versuche, Aws::ACM::Client#import_certificate mit einer der folgenden Methoden zu verwenden, sagt der Stack-Trace, dass mein privater Schlüssel nicht 1024 oder 2048 ist. Wenn dies der Fall wäre, hätte Entrust mein Zertifikat nicht signiert. Ich sagte auch die openssl Programm als Nachricht 2048.aws-sdk-ruby Aws :: ACM :: Client # import_certificate Dateipfade oder Inhalte von Dateien

Der Fehler

Der private Schlüssel wird nicht unterstützt, zu erzeugen. Nur RSA 1024-Bit- und 2048-Bit-private Schlüssel sind zulässig.

erstes Codebeispiel

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

Der erste Methode Aufruf sagt mein Schlüssel nicht 2048bit ist. Dann auch die zweite Methode:

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

Gleicher Fehler wie oben. Die Dokumentation ist mir nicht ganz klar darüber, was sie erwartet. Es sagt Daten, und ich dachte, das war der Inhalt der Zertifikatsdatei. Hat jemand anderes dieses Problem schon einmal gehabt?

Ich war in der Lage, den Schlüssel, das Zertifikat und die Kette zu ACM mit der aws Python CLI, die sie unter Verwendung file:// bereitstellen.

Antwort

0

Versuchen Sie, die AWS CLI und sehen, ob das funktioniert für Sie:

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

aws --Version

Anmerkung: kompatibel mit Version: aws-cli/1.14.18 Python/2.7.9 Windows-/8 botocore/1.8.22

Anmerkung: nicht kompatibel mit Version: aws-cli/1.10.21 Python/2.7.9 Fenster/8 botocore/1.4.12

+0

konnte ich den Schlüssel laden, Zertifikat und ketten zu ACM unter Verwendung der aws Python CLI, die der y stelle mit file: // zur Verfügung. – Pred