ruby-on-rails - 如何为 AWS Elastic Beans 设置多行 RSA 私钥环境变量

标签 ruby-on-rails amazon-web-services rsa amazon-elastic-beanstalk

我正在使用 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创建新行。

enter image description here

我尝试了几种不同的样式,但它们似乎都没有插入 \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/

相关文章:

ruby-on-rails - 在不暴露整个路径的情况下显示 Rails Carrierwave URL

ruby-on-rails - CSS 文件的 Rails I18n

python - 亚马逊 AWS Kinesis Video Boto GetMedia/PutMedia

amazon-web-services - AWS Lambda 是否对初始化代码所花费的时间收费?

ios - 将 XML Dsig 格式转换为 DER ASN.1 公钥

JavaScript 不喜欢 hashes.to_json?

ruby-on-rails - 如何在 Capistrano 部署的生产环境中对我的产品图像进行符号链接(symbolic link)?

java - S3 预签名 URL 回调

python - 在Python中加载RSA公钥文件并转换为二进制数组?

javascript - 在C#中通过JS发布解密RSA公钥加密数据