Я работаю на веб-сайте RoR, для которого требуется модуль электронного платежа. Для реализации электронного платежа требуется, чтобы данные XML были закодированы с использованием общедоступного ключа ssl, предоставленного ими.Как мне сделать Ruby read .cer public ssl key?
То, что я пытался сделать в Ruby:
public_key = OpenSSL::PKey::RSA.new(File.read(public_key_file))
Если я просто пытаюсь открыть файл отдельно он работает отлично. Но метод RSA.new() возвращает следующую ошибку:
OpenSSL::PKey::RSAError: Neither PUB key nor PRIV key:: nested asn1 error
from (irb):5:in `initialize'
from (irb):5:in `new'
from (irb):5
Из того, что я видел в онлайн-документации используется .pem файл, но мой открытый ключ что-то вроде public.cer. Может ли это быть проблема ? Ключ сам по себе подходит для примера PHP, предоставленного компанией электронных платежей, тот же файл public.cer работает нормально.
Что я делаю неправильно?
Спасибо,
Я попробовал ваше решение, и это работает прекрасно, пока я не сделаю: «серт = OpenSSL :: X509 :: Certificate.new (PEM)», в которой указать, что дает мне такое же сообщение об ошибке. Также я заметил некоторые символы «\ n» в коде сертификата, может ли это быть проблемой? Спасибо – Brayn
Да. Существует дополнительный \ n. Я редактировал код. –
Я пробовал новую версию кода без везения. Спасибо, в любом случае. – Brayn