无法验证证书 - 请设置 'ENV['SSL_CERT_FILE'] = path_to_file'

Posted

技术标签:

【中文标题】无法验证证书 - 请设置 \'ENV[\'SSL_CERT_FILE\'] = path_to_file\'【英文标题】:Unable to verify certificate - please set 'ENV['SSL_CERT_FILE'] = path_to_file'无法验证证书 - 请设置 'ENV['SSL_CERT_FILE'] = path_to_file' 【发布时间】:2014-10-31 08:05:31 【问题描述】:

我有一个使用 Carrierwave 上传文件的 Rails 4 应用程序。安装 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_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_CERT_FILE”添加到我的环境路径(通过控制面板在用户和系统变量下),将其设置为 c:/RailsInstaller/cacert.pem(并重新启动我的计算机)。

当我的控制器在控制器/视频控制器中调用@video.save 时出现错误:

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

我在 Windows 7 上,使用 ruby​​ 1.9.3p484 和 RubyGems 2.2.2。有人可以帮我了解这个错误的原因以及如何解决它吗?

【问题讨论】:

你找到答案了吗? @jeff,我想我最终使用了“carrierwave-aws”gem,它为 Amazon S3 提供文件上传功能以及 Amazon aws-sdk gem 功能。这让我可以跳过 Fog(我认为这是导致错误但不记得确切的原因)。我想我从来没有想过如何解决证书错误。 我认为您需要通过控制台将 ENV 定义到您的服务器。在heroku你可以做heroku config:set SSL_CERT_DIR=frfrboxc88b1bd SSL_CERT_FILE=c5707cff6dd5b11a06 前段时间我遇到了类似的问题,但在 heroku 上,并用github.com/excon/excon/issues/239 中的信息解决了这个问题。为我解决的问题是在heroku上安装ca-bundle.crt并运行heroku config:set SSL_CERT_FILE=/app/lib/ca-bundle.crt 过去在处理上传的雾时遇到了 excon 错误问题,而 open-ssl 最终成为问题。我必须这样做来修复 brew update ;冲泡卸载openssl;冲泡安装openssl 【参考方案1】:

使用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

有关此问题的更多信息,请参阅讨论 https://github.com/rvm/rvm/pull/1764

【讨论】:

以上是关于无法验证证书 - 请设置 'ENV['SSL_CERT_FILE'] = path_to_file'的主要内容,如果未能解决你的问题,请参考以下文章

本地 Keycloak 设置返回“错误:无法验证第一个证书”nodejs 错误

错误:设置 id_rsa 后无法验证第一个证书

outlook邮箱无法验证安全证书

iPhone安装企业包出现“无法验证证书”问题解决

SSL证书错误啥原因

charles 使用中手机无法抓取https包(iphone)