2012-03-05 15 views
6

Ho usato per ricevere il seguente errore:Chi legge il valore di ENV ['SSL_CERT_FILE']?

OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed 
from C:/Ruby1.9.2/lib/ruby/1.9.1/net/http.rb:678:in `connect' 

dopo aver letto this, ho scoperto che la correzione è quello di scaricare il file da cacert.pem here. Il post consiglia di fare qualcosa del genere:

ENV['SSL_CERT_FILE'] = File.join(File.dirname(__FILE__),"cacert.pem") 

E, in effetti, questo risolve il problema. Tuttavia, chi legge il valore di SSL_CERT_FILE? Alterare l'ambiente non sembra "il modo Ruby" di farlo. Sto cercando una soluzione che possa funzionare sia con Rails che con Sinatra.

risposta

9

La libreria openssl utilizza la variabile di ambiente SSL_CERT_FILE.