使用远程位置的模板创建新的rails应用程序时遇到一些问题,例如需要进行ssl认证检查的github。我正在使用带有ruby1.9.2和openssl的雪豹,两者都安装了macports。
rails new rails_mongo -m https://raw.github.com/RailsApps/rails3-application-templates/master/rails3-mongoid-devise-template.rb
将导致:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)
所以为了避免这个问题,我使用SSL_CERT_FILE变量运行rails:
SSL_CERT_FILE=/opt/local/share/curl/curl-ca-bundle.crt rails new rails_mongo -m https://raw.github.com/RailsApps/rails3-application-templates/master/rails3-mongoid-devise-template.rb
要保持此设置,我在.bash_profile中设置了SSL_CERT_FILE变量,并且echo确认该变量具有正确的值:
echo $SSL_CERT_FILE
/opt/local/share/curl/curl-ca-bundle.crt
但是,如果我再次运行rails,证书检查将失败,我不明白为什么? 如果没有在任何地方设置OpenSSL :: SSL :: VERIFY_NONE,还有其他方法可以避免这个问题吗?
(像git这样的其他应用程序一直很好)
由于
答案 0 :(得分:1)
你可能已经解决了这个问题,但你还记得:
export SSL_CERT_FILE=/opt/local/etc/openssl/cert.pem
因为rails将与bash shell分开运行,因此需要导出env vars(简单的东西,但如果它是深夜而你的头脑sooo不想解决另一个rails环境问题那么它可能会被忽略!)