Ruby on rails 无法验证证书-请设置';ENV[';SSL证书文件';]=文件的路径';
我有一个Rails 4应用程序,它使用Carrierwave上传文件。在安装Fog将文件上载到Amazon 3后,我在上载文件时开始出现以下错误:Ruby on rails 无法验证证书-请设置';ENV[';SSL证书文件';]=文件的路径';,ruby-on-rails,ssl,amazon-s3,environment-variables,carrierwave,Ruby On Rails,Ssl,Amazon S3,Environment Variables,Carrierwave,我有一个Rails 4应用程序,它使用Carrierwave上传文件。在安装Fog将文件上载到Amazon 3后,我在上载文件时开始出现以下错误: Excon::Errors::SocketError in VideosController#create Unable to verify certificate, please set `Excon.defaults[:ssl_ca_path] = path_to_certs`, `ENV['SSL_CERT_DIR'] = path_to_c
Excon::Errors::SocketError in VideosController#create
Unable to verify certificate, please set `Excon.defaults[:ssl_ca_path] = path_to_certs`, `ENV['SSL_CERT_DIR'] = path_to_certs`, `Excon.defaults[:ssl_ca_file] = path_to_file`, `ENV['SSL_CERT_FILE'] = path_to_file`, `Excon.defaults[:ssl_verify_callback] = callback` (see OpenSSL::SSL::SSLContext#verify_callback), or `Excon.defaults[:ssl_verify_peer] = false` (less secure).
我很困惑,因为我已将“SSL证书文件”添加到我的环境路径(通过控制面板在用户和系统变量下),将其设置为c:/RailsInstaller/cacert.pem(并重新启动我的计算机)
当我的控制器调用@video.save in controllers/videos\u controller时出现错误:
class SessionsController < ApplicationController
def create
@video = Video.new(video_params)
if @video.save
redirect_to videos_path, notice: "Video has been uploaded."
else
render "new"
end
end
private
def video_params
params.require(:video).permit(:name, :attachment)
end
end
class sessioncontroller
我在Windows7上,使用Ruby1.9.3p484和RubyGems 2.2.2。有人能帮助我了解此错误的原因以及如何修复它吗?使用
RVM
修复SSL
证书
最新版本的RVM
,即Ruby版本管理器,包含一个实用程序,用于诊断和解决由过期证书文件引起的错误。有关说明和建议,请参阅文章“安装Rails”。RVM
网站介绍了如何安装RVM
如果已安装3RVM
,请尝试以下操作:
$ rvm -v
# rvm 1.19.1 (stable)
$ rvm osx-ssl-certs status all
# Certificates for
$ rvm osx-ssl-certs update all
# Updating certificates
有关此问题的更多信息,请参阅上的讨论
你找到答案了吗?@jeff,我想我最终使用了“carrierwave aws”gem,它提供了到Amazon S3的文件上传功能以及Amazon aws sdk gem功能。这让我跳过了Fog(我认为这是导致错误的原因,但记不清了)。我认为我还没有找到解决证书错误的方法。我认为您需要通过控制台为服务器定义ENV。在heroku中,您可以执行heroku配置:set SSL_CERT_DIR=frfboxc88b1bd SSL_CERT_FILE=c5707cff6dd5b11a06不久前,我在heroku上遇到了类似的问题,并用中的信息解决了它。对我来说,解决这个问题的方法是在heroku上安装
ca bundle.crt
,然后运行heroku配置:set SSL\u CERT\u FILE=/app/lib/ca bundle.crt
在过去的卸载fog时遇到了excon错误,最终导致了问题。我必须这样做来修复brew更新;brew卸载openssl;brew安装openssl