解决Ruby出现SSL连接错误

Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,源于Perl和Lisp两类语言,与C,C++,C#,java是不同大类。

之前在网上看过有用户在在使用net/imap库的时候,或者net/http库(主要是用到了https,https是用了ssl) 的时候,被提示以下的SSL错误:

错误提示:E:/Ruby200/lib/ruby/2.0.0/net/imap.rb:1454:in `connect’: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)

由提示可以得出,是证书验证失败了。为什么呢?

SSL连接,是安全套接层连接,是在传输层对数据进行加密从而保护网络通信中传输的数据。使用这个的时候就需要ssl证书。而ruby中是默认不验证证书的,在net/http库的源码里

有一个实例变量@use_ssl = false,使用ssl默认为假,也就是不使用。

解决方法

面对这种问题,信孚科技建议可通过以下步骤来解决问题:

1.到信孚科技申请适合自己的SSL证书,信孚科技的网站有具体解释什么用户适用于哪种SSL证书。申请完成后,到界面下载cacert.pem就可以了,

2.然后将证书放在合适的位置。一般是ruby或者rails安装地方的根目录下,例如我的:E:\Ruby200\cacert.pem

3.设置环境变量,在命令行(cmd)里,输入 set SSL_CERT_FILE=E:\Ruby200\cacert.pem,这只是临时的环境变量。如果要是固定的环境变量,转下一步。

4.置固定环境变量。win7下 控制面板->系统和维护->系统->高级系统设置(或者 改变设置->高级),进入环境变量,选择系统变量,新建。输入如下

这样就可以了。

可见,选择合规的SSL证书是如此的重要,为了保障工作的顺利运行,信孚科技建议大家选用正规的,受全网信任的SSL证书品牌。

相关新闻

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code