我正在使用 Elastic Beanstalk 将 Ruby on Rails 应用程序部署到 AWS,并且必须将私钥设置为环境变量
例如-----BEGIN RSA PRIVATE KEY-----
SpvpksXQIBA65ICOgQxV2TvMIICAiMeV9prhdJSKjjsk2
tYdz8lhn/ibROQW71utuHLAyHGMBxz3kIaaIq1kjdkkk
tYdz8lhn/ibROQW71utuHLAyHGMBxz3kIaaIq1kjdkkk
tYdz8lhn/ibROQW71utuHLAyHGMBxz3kIaaIq1kjdkkk
tYdz8lhn/ibROQW71utuHLAyHGMBxz3kIaaIq1kjdkkk
-----END RSA PRIVATE KEY-----
但是,这在部署应用程序时似乎不起作用,因为它总是失败并显示
OpenSSL::PKey::RSAError: Neither PUB key nor PRIV key: nested asn1 error
我认为这是因为 RSA key 格式错误。
然而与 Heroku 不同的是,AWS EB 不接受多行输入(见下文),所以我必须使用
\n
创建新行。我尝试了几种不同的样式,但它们似乎都没有插入
\n
正确,我总是不断收到相同的错误。我试过
\n
和每行的结尾,然后是 \\n
并尝试过双引号 \"
包装 key ,但我仍然不断收到相同的错误。如何在 AWS Elastic Beanstalk 中正确设置多行环境变量?
最佳答案
您可以使用 \n
在 EB 中设置它然后将 '\n' 转换为换行符,然后再将其传递给 config.key
- 类似这样(注意调用 gsub
中的单引号和双引号):
single_line_key = ENV.fetch('CLOUDFRONT_KEY')
multi_line_key = single_line_key.gsub('\n', "\n")
config.key = multi_line_key
关于ruby-on-rails - 如何为 AWS Elastic Beans 设置多行 RSA 私钥环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43082918/