2015-06-08 61 views
1

我安裝了Ruby在Windows XP 2.0.0 SSL證書的目錄,然後運行該腳本:紅寶石在Windows XP:如何更改

# testSSL.rb 
require 'open-uri' 
open('https://www.google.com') 

我得到一個「證書驗證失敗」錯誤的http.rb線921 測試進一步,似乎是紅寶石將查找SSL證書文件的位置:

C:/Users/Justin/Projects/knap-build/var/knapsack/software/x86-windows/openssl/1.0.1l/ssl 

我怎麼能告訴Ruby來尋找他們在那裏安裝了這些文件:

C:/Ruby200/lib/ruby/2.0.0/rubygems/ssl_certs. 

任何幫助將不勝感激!

回答

0

這樣,而是因爲你覆蓋恆定

OpenSSL::X509::DEFAULT_CERT_FILE = 'C:/Users/Gebruiker/cert.pem' 
puts OpenSSL::X509::DEFAULT_CERT_FILE 

或類似這樣的

ENV['SSL_CERT_FILE']="C:/users/username/cert.pem" #make sure a correct certificate is there 

在這兩種情況下,隨後

http.use_ssl = true 

你可以下載一個,你會得到一個警告從http://curl.haxx.se/ca/cacert.pem有效.pem文件。將該文件保存爲路徑中的擴展名爲.pem的文件,並將其與您在腳本中引用的名稱一起保存。

+0

謝謝彼得,但這並沒有奏效(用8個PEM文件試了一下)。 X509對象始終返回相同的「證書驗證失敗」錯誤,包括當我指定不存在的文件或路徑時。 – Ahbal

+0

這就是要點,你必須確保文件存在並且是有效的(有不同類型的.pem證書),有沒有.pem文件的解決方案,但是我不發佈它,因爲它會產生仇恨評論,因爲這是不安全的 – peter

+0

明白了。再次感謝。 – Ahbal