2016-09-26 58 views
0

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

红宝石app.rb

然后我这个URL到我的浏览器和访问粘贴到我的本地服务器:

http://localhost:4567

在此本地网页我点击了连接到互联网上的Web服务器的链接,我需要进行身份验证。到目前为止,一切正常,但在认证过程中,我得到了一个错误。如果在我的授权过程中没有任何错误,应用程序将从互联网服务器上检索我的个人资料数据。这是我得到的错误:

Faraday :: SSLError at/callback handshake alert: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。

回答

0

您是否尝试禁用法拉第库的ssl设置?喜欢的东西:

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

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

+0

1)我没有看到任何法拉第库在我的所有系统。或者,也许我做错了什么? 2)我检查了您发送的链接。我试图更改法拉第初始化器,将此路径作为ca_path变量包含,但我的文件夹/ System/Library/OpenSSL/certs为空。在/ System/Library/OpenSSL中有三个目录和一个文件:/ certs,/ misc,/ private和文件openssl.cnf。我不知道该放哪里:connection = Faraday :: Connection.new'https://encrypted.google.com',:ssl => { :ca_path =>“/ usr/lib/ssl/certs” }。我误解了什么? – Wordworth

相关问题