получение SSL_connect ... сбой рукопожатия оповещения sslv3 при использовании файла .p12 ruby - PullRequest
2 голосов
/ 08 февраля 2012

Я пытаюсь использовать файл p12 и пароль, чтобы открыть страницу https с помощью RestClient в ruby.

p12 = OpenSSL :: PKCS12.new (File.read ("# {RAILS_ROOT} /file.p12"), "pass")

resp = RestClient :: Resource.new (url,: ssl_client_key => p12.key) .get

чем я получаю:

SSL_connect возвращено = 1 errno = 0 состояние = чтение SSLv3 завершено A: сбой квитирования оповещения sslv3

(RestClient не обязателен - все остальное подойдет)

что мне не хватает?

Ответы [ 2 ]

1 голос
/ 27 апреля 2012

Вы должны установить пакет openssl и переустановить ruby. Не уверен, что важно:

rmdir $rvm_path/usr/ssl/certs
ln -s /etc/ssl/certs $rvm_path/usr/ssl

Necesery:

rvm pkg install openssl
rvm <(if exist) re>install <RUBY_VERSION> --with-openssl-dir=$rvm_path/usr
0 голосов
/ 06 марта 2017

Вам необходимо импортировать файл file.p12 в ваше местоположение nssdb.

mkdir /root/nssdb
pk12util -i /path-to/your/file.p12 -d /root/nssdb
certutil -L -d /root/nssdb/
export SSL_DIR = /root/nssdb

curl -X POST -H "Content-Type: text/xml" --data "#{xml}" --cert cert:password "https://yoururl.com" -v -k
chmod -R 777 /root/nssdb
chown -R user /root/nssdb

Вставьте этот вызов curl в ваш клиент ruby. Это будет работать.

Примечание. Если вы используете другую версию ssl, вам нужно добавить --tlsv1.0 к команде curl

...