我有一些證書文件,即.key文件它說:的Rails無法讀取從環境證書信息因嵌套ASN1錯誤
-----BEGIN RSA PRIVATE KEY-----
IEpAIBAAKCAQEAwAwxt4edIh3UuK8r5
....blablabla..................
QSNoquaasdsaKDybrezemVqCxsQjg==
-----END RSA PRIVATE KEY-----
所以這是一個RSA私鑰。
我用來從文件加載它們,像這樣:
@private_key = OpenSSL::PKey::RSA.new(File.read(private_key_file))
但自從我使用Heroku的,我打算在環境變量保存爲自己的價值觀我的證書。
所以我在我的.ENV文件
COMPANY_KEY="-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKC.....\n-----END RSA PRIVATE KEY-----"
呀粘貼他們,我切換了\n
基於Multi-line config variables in Heroku清楚地表達\\n
。所以現在我的代碼看起來像這樣:
@private_key = OpenSSL::PKey::RSA.new(ENV['COMPANY_KEY'])
如果我從控制檯運行它,我會得到構建的對象。但是如果我嘗試從網絡服務器(Puma 3.4.0 over Rails 4.2.6,Ruby 2.2.3)運行它,它會失敗地說:Neither PUB key nor PRIV key:: nested asn1 error
試圖運行同一行時。
如果我使用調試控制檯我得到讀取文件看起來像 "Line 1\\nLine3\\nLinea3"
等等...
我敢肯定,它有什麼做的文件格式,但我所有的想法,也許你可以幫助,如果你有我的問題。
請創建一個測試私鑰,然後發佈它。雖然你這樣做,看看[如何使用openssl生成RSA私鑰?](http://stackoverflow.com/a/30493975/608639)。注意*** ***公鑰***和***公鑰***信息***之間的區別與預封裝頭(***'----- BEGIN RSA PUBLIC KEY ---- ***'與***'----- BEGIN PUBLIC KEY ----- ***)。這同樣適用於私鑰。 – jww