2016-09-26 39 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