2011-01-17 6 views
0

필자는 .pem cert가 올바르게 생성되었음을 합리적으로 확신하며 OpenSSL에서 Rails 3.0.2 모델에 붙여 넣을 때 허용되지 않습니다. 내가 할 것은 이것이다 :OpenSSL/레일즈 모델에 .pem cert를 삽입하는 올바른 방법은 무엇입니까?

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

이 나에게 오류 제공 :

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

나는 어쩌면 생각하지 :

Neither PUB key nor PRIV key:: 

가 난 그냥 대신, 오류가 파일에서로드 테스트하기를 어떤 인코딩 오류 또는 개행 문제가 될 것입니다, 나는 아무 소용이 개 라인 아웃 gsub'ing했다.

+0

인증서가 실제로 개인 키를 포함하는지 확인하려면 먼저 인증서를 만드는 단계를 게시하십시오. – jer

+0

은 복사 및 붙여 넣기의 일부 인공물처럼 보입니다. 어쩌면 개행 문자가 아닌 다른 종류의 띄어쓰기 문제 일 수도 있습니다. 실제로 그것을 보지 않고 말하기는 어렵습니다. –

답변

0

실제로 이상한 복사 및 붙여 넣기 아티팩트였습니다. 나는 파일 붙여 넣기 대신 파일에 그것을 읽었고 괜찮 았어.

0

아마 늦었지만 대답은 : 복사/붙여 넣기를 사용하여 Ruby에서 공개 키를 삽입 할 수 있지만 서식 지정과 같은 것은 줄의 공백이므로 결과로 나오는 pem 문자열에 공백이 없는지 확인해야합니다. 필자는 PEM 파일을 복사하여 Ruby 코드에 붙여 넣었습니다. 텍스트 메이트 나 줄에 추가 된 여분의 공백을 제거하기 전까지는 작동하지 않았습니다. 여기 보여

하드 :

SQS_PUBLIC_KEY = "----- 공개 키를 BEGIN ----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs3VeTxEgLQLL11UN2G6c oQsc0LbpoEs4VTmu0S4XU82N4h/25XX5k4t5oTJ0JGGSBP4/gzTwz15vS5mrlnsG MISSINGLINES rMV5ZCXToG0VCNPEHpZQnUHMCg/nF9jnk9i1ZZHv2dpYYG7GHMUPG3rtcTWJvZxI 3wIDAQAB ---- -end PUBLIC "force_encoding. KEY ----- ("US-ASCII ")

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

즉, - 아니 두 번째 한 루비는 각 줄의 시작 부분에 공백을 추가하며 RSA 도구는 공백을 무시하지 않고 줄 바꿈 만 무시합니다.

대체 키로 복사/붙여 넣기 키를 사용합니다. 즉 ENV가 설정된 경우이를 사용합니다. 그렇지 않으면 공개 키에 붙여 넣기를 사용합니다.

- 톰

관련 문제