法拉第:: SSLError at / callback握手警报:unrecognized_name

时间:2016-09-26 21:15:46

标签: ruby

我是一个刚开始学习Ruby的新手,所以请耐心等待我。 我正在做Ruby挑战,我需要运行一个Ruby文件,在我的计算机上启动一个Web服务器。首先,我使用命令在命令行中运行此应用程序:

ruby​​ app.rb

然后我将此URL粘贴到我的浏览器并访问我的本地服务器:

http://localhost:4567

在这个本地网页上,我单击连接到Internet上的Web服务器的链接,我应该对其进行身份验证。直到这一刻一切正常,但在身份验证期间我遇到了错误。如果在我的授权期间没有任何错误,应用程序将从Internet服务器检索我的配置文件数据。这是我得到的错误:

法拉第:: AT /回调SSLError 握手警报:unrecognized_name。

我一直试图解决这个问题两天。我做了什么:

1)我认为这个错误与Java有某种联系。我尝试使用所有版本的Java(6,7,8)运行此应用程序,因为人们说当他们更新到更高版本的Java时他们遇到了同样的问题。不幸的是,我的Ruby版本不接受Java 6。

2)这里发布的SSL handshake alert: unrecognized_name error since upgrade to Java 1.7.0)可能的解决方案,与Stackoverflow中关于“handshake alert:unrecognized_name”错误的20个类似帖子相同,建议设置jsse.enableSNIExtension属性。但我无法理解任何这些答案,特别是在哪里应用此代码。然后我找到了这个链接https://community.jivesoftware.com/docs/DOC-140837,建议打开Java控制面板(我是通过系统偏好设置Java完成的)。我浏览了Java选项卡并单击View并将“-Djsse.enableSNIExtension = false”添加到运行时参数并应用它。

3)这里找到了另一种可能的解决方案Disable SNI Extension for Ruby net/http - Using IP address with SSL/TLS(ZebGir给出的答案),但我在.rvm中找不到文件* http.rb,甚至在我的整个系统中都找不到。

请告知任何有关我的问题的可能解决方案的提示或链接。 我的系统是Mac OS X El Capitan。 RVM版本1.27。 Java版本1.8。

1 个答案:

答案 0 :(得分:0)

您是否尝试过禁用法拉第库的ssl设置?类似的东西:

connection = Faraday.new 'https://example.com', :ssl => false

另见:https://github.com/lostisland/faraday/wiki/Setting-up-SSL-certificates