3

ich den Einsatz einer Ruby on Rails-Anwendung auf AWS mit Elastic Beanstalk Einst und einen privaten Schlüssel als UmgebungsvariableWie mehrzeilige privaten RSA-Schlüssel-Umgebungsvariable für AWS Elastic Beans

Eg

-----BEGIN RSA PRIVATE KEY----- SpvpksXQIBA65ICOgQxV2TvMIICAiMeV9prhdJSKjjsk2 tYdz8lhn/ibROQW71utuHLAyHGMBxz3kIaaIq1kjdkkk tYdz8lhn/ibROQW71utuHLAyHGMBxz3kIaaIq1kjdkkk tYdz8lhn/ibROQW71utuHLAyHGMBxz3kIaaIq1kjdkkk tYdz8lhn/ibROQW71utuHLAyHGMBxz3kIaaIq1kjdkkk -----END RSA PRIVATE KEY----- gesetzt haben

dies gilt jedoch nicht zu funktionieren scheint bei der Bereitstellung der App, wie es immer mit einem ich denke

OpenSSL::PKey::RSAError: Neither PUB key nor PRIV key: nested asn1 error

schlägt fehl Das liegt daran, dass der RSA-Schlüssel fehlerhaft ist.

Im Gegensatz zu Heroku akzeptiert AWS EB keine mehrzeilige Eingabe (siehe unten), daher muss ich \n verwenden, um neue Zeilen zu erstellen.

enter image description here

Ich habe versucht, mit einigen verschiedenen Stilen, aber keiner von ihnen scheint die \n richtig zu interpolieren, und ich halte immer die gleichen Fehler.

Ich habe versucht, mit \n und das Ende jeder Zeile, dann \\n und auch doppelte Anführungszeichen versucht versucht \" den Schlüssel zu wickeln, aber ich halte immer noch die gleichen Fehler.

Wie setze ich eine mehrzeilige Umgebungsvariable in AWS Elastic Beanstalk richtig?

+0

Wofür würde der Schlüssel von Ihnen verwendet werden? Wenn es ein SSH-Schlüssel sein sollte, dann müssten Sie das OpenSSH-Format verwenden. –

+0

Der Schlüssel ist nicht für SSH. Es ist für die Initialisierung eines Gemme namens "Cloudfront-Signer" –

Antwort

3

Man könnte es in EB gesetzt \n verwenden und dann wandeln die ‚\ n‘ zu Zeilenumbrüchen, bevor Sie es config.key passieren - so etwas wie dieses (beachten Sie die einfache und doppelte Anführungszeichen in dem Aufruf von gsub):

single_line_key = ENV.fetch('CLOUDFRONT_KEY') 
multi_line_key = single_line_key.gsub('\n', "\n") 
config.key = multi_line_key 
Verwandte Themen