Правильный способ вставить сертификат .pem в модель рельсов OpenSSL / a? - PullRequest
0 голосов
/ 17 января 2011

У меня есть сертификат .pem, который я вполне уверен, что сгенерировал правильно, и он не принимается OpenSSL, когда я вставляю его в модель Rails 3.0.2. Что я делаю, это:

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"))

Я подумал, что может быть из-за ошибки кодирования или проблемы с новой строкой, я пытался gsub'ить новые строки безрезультатно.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2011

Возможно, поздно, но это ответ: Вы можете поместить открытый ключ в Ruby с помощью функции копирования / вставки, но имейте в виду, что для вас похоже на форматирование - это пробел в строке - вы должны убедиться, что полученная строка pem не имеет пробелов. Я просто скопировал и вставил из PEM-файла в код Ruby, и он не работал, пока я не удалил лишние пробелы, которые сопрягали текст или что-либо еще добавленное к строкам.

Трудно показать здесь:

SQS_PUBLIC_KEY = "----- НАЧАТЬ ПУБЛИЧНЫЙ КЛЮЧ ----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs3VeTxEgLQLL11UN2G6c oQsc0LbpoEs4VTmu0S4XU82N4h / 25XX5k4t5oTJ0JGGSBP4 / gzTwz15vS5mrlnsG MISSINGLINES rMV5ZCXToG0VCNPEHpZQnUHMCg / nF9jnk9i1ZZHv2dpYYG7GHMUPG3rtcTWJvZxI 3wIDAQAB ----- КОНЕЦ ОБЩЕСТВЕННОГО КЛЮЧА ----- ". Force_encoding (" us-ascii ")

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

то есть - НЕ второй - ruby ​​добавляет пробелы в начало каждой строки, а инструменты RSA не игнорируют пробелы - они, похоже, игнорируют только перевод строки.

Я использую ключ копирования / вставки как запасной вариант - другими словами, если установлен ENV, я использую его, в противном случае используйте вставленный открытый ключ.

- Том

0 голосов
/ 27 января 2011

Это был странный артефакт копирования и вставки.Я File.read'd его в модель вместо копирования вставить, и он работал нормально ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...