相关疑难解决方法(0)

由于嵌套的asn1错误,Rails无法从环境读取证书信息

我有一些证书文件,即.key文件,其中说:

-----BEGIN RSA PRIVATE KEY-----
IEpAIBAAKCAQEAwAwxt4edIh3UuK8r5
....blablabla..................
QSNoquaasdsaKDybrezemVqCxsQjg==
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

因此,这是RSA私钥。

我曾经从这样的文件加载它们:

@private_key = OpenSSL::PKey::RSA.new(File.read(private_key_file))
Run Code Online (Sandbox Code Playgroud)

但是,由于我使用的是Heroku,所以我打算将证书另存为它们在环境变量中的值。

所以我将它们粘贴到了我的.env文件中

COMPANY_KEY="-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKC.....\n-----END RSA PRIVATE KEY-----"
Run Code Online (Sandbox Code Playgroud)

是的,我在Heroku中基于多行配置变量切换了\nfor显式。所以现在我的代码看起来像这样:\\n

@private_key = OpenSSL::PKey::RSA.new(ENV['COMPANY_KEY'])
Run Code Online (Sandbox Code Playgroud)

而且,如果我从控制台运行它,则会得到构建的对象。但是,如果我尝试从Web服务器(基于Rails 4.2.6的Puma 3.4.0,Ruby 2.2.3)运行它,它会惨不忍睹:Neither PUB key nor PRIV key:: nested asn1 error在尝试运行同一行时。

如果我使用调试控制台,则可以看到读取的文件看起来像 "Line 1\\nLine3\\nLinea3"这样……

我很确定这与文件格式有关,但是我全都没有想法,如果遇到像我这样的问题,也许可以帮上忙。

ruby ruby-on-rails heroku

2
推荐指数
1
解决办法
2867
查看次数

标签 统计

heroku ×1

ruby ×1

ruby-on-rails ×1