我正在尝试使用p12文件和密码在ruby中使用RestClient打开https页面。
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不是强制性的 - 其他任何事情都可以)
我错过了什么?
答案 0 :(得分:1)
您必须安装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
答案 1 :(得分:0)
您需要将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
在您的ruby客户端中嵌入此curl调用。它会起作用。
注意:如果您使用的是其他ssl版本,则需要将-tlsv1.0添加到curl命令