2011-01-17 4 views
0

Rails 3.0.2モデルに貼り付けたときに正しく生成されたことを合理的に確信しており、OpenSSLで受け入れられていない.pem certがあります。これは私にエラー与えOpenSSL /レールモデルに.pem証明書を挿入する適切な方法は?

open up the .pem file in Textmate 
select all and copy 
user.cert = <paste into model>; user.save 
OpenSSL::PKey::RSA.new(user.cert) 

::私は何がこれです

Neither PUB key nor PRIV key:: 

テストするために、私はだけではなく、ファイルにロードされ、エラー:

OpenSSL::PKey::RSA.new(File.read("/path/to/cert.pem")) 

私は多分思っていません何らかのエンコーディングエラーや改行の問題になるかもしれませんが、私は改行を無駄にしようとしました。

+0

最初に証明書を作成するために使用した手順を投稿し、証明書に実際に秘密鍵が含まれていることを確認します。 – jer

+0

はコピー&ペーストのアーティファクトのようです。多分改行ではないかもしれませんが、いくつかの他の種類の間隔問題があります。それを実際に見ることなく言うのは難しいです。 –

答えて

0

確かに奇妙なコピーアンドペーストのアーティファクトでした。私はFile.read'dをコピー貼りの代わりにモデルに入れました。それは正常に機能しました...

0

おそらく遅く、これは答えです: Rubyにコピー/ペーストでインラインで公開することはできますがあなたの書式に似ているのは、行内の空白です。結果として生じる文字列に空白がないことを確認する必要があります。 PEMファイルからコピーしてRubyコードに貼り付けただけで、テキストメイトや余分なスペースを削除するまで機能しませんでした。

ここに表示ハード

SQS_PUBLIC_KEY =「----- ----- PUBLIC KEYをBEGIN MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs3VeTxEgLQLL11UN2G6c oQsc0LbpoEs4VTmu0S4XU82N4h/25XX5k4t5oTJ0JGGSBP4/gzTwz15vS5mrlnsG MISSINGLINES rMV5ZCXToG0VCNPEHpZQnUHMCg/nF9jnk9i1ZZHv2dpYYG7GHMUPG3rtcTWJvZxI 3wIDAQAB ---- -END PUBLIC KEY -----」(US-ASCII ")

SQS_PUBLIC_KEY = "-----BEGIN PUBLIC KEY----- 
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs3VeTxEgLQLL11UN2G6c 
    oQsc0LbpoEs4VTmu0S4XU82N4h/25XX5k4t5oTJ0JGGSBP4/gzTwz15vS5mrlnsG 
    MISSINGLINES 
    rMV5ZCXToG0VCNPEHpZQnUHMCg/nF9jnk9i1ZZHv2dpYYG7GHMUPG3rtcTWJvZxI 
    3wIDAQAB 
    -----END PUBLIC KEY-----".force_encoding("us-ascii") 

すなわちforce_encoding。" - NOT 2番目のルビは各行の先頭にスペースを追加し、RSAツールはスペースを無視しません。改行は無視されます。

フォールバックとしてコピー/ペーストされたキーを使用します。つまり、ENVが設定されている場合はそれを使用し、それ以外の場合は貼り付けた公開キーを使用します。

--Tom

関連する問題