OpenSSL :: SSL :: SSLError .....证书验证失败?

Lea*_*RoR 5 ruby-on-rails devise ruby-on-rails-3

我刚刚升级到Rails 3.2.8并更新了我的所有宝石.我想测试我的网站,所以我开始注册但是当我点击加入按钮时它给了我错误:

OpenSSL::SSL::SSLError in RegistrationsController#create

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

app/models/user.rb:28:in `send_welcome_email'
Run Code Online (Sandbox Code Playgroud)

我正在使用Devise 2.1.2,这是我的用户模型:

class User < ActiveRecord::Base
  attr_accessible :email, :password, :remember_me
  attr_accessor :accessible # something for devise i think
  devise :database_authenticatable, :registerable, 
  :recoverable, :rememberable, :trackable, 
  :validatable, :email_regexp =>  /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i

  after_create :send_welcome_email

  private

  def send_welcome_email
    UserMailer.welcome_email(self).deliver
  end
end
Run Code Online (Sandbox Code Playgroud)

我猜它与我的development.rb中的电子邮件设置有关.

require 'tlsmail'
  Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
  ActionMailer::Base.delivery_method = :smtp
  ActionMailer::Base.perform_deliveries = true
  ActionMailer::Base.raise_delivery_errors = true
  ActionMailer::Base.smtp_settings = {
    :enable_starttls_auto => true,
    :address            => 'smtp.gmail.com',
    :port               => 587,
    :tls                => true,
    :domain             => 'app.com',
    :authentication     => :plain,
    :user_name          => 'support@app.com',
    :password           => '******'
  }
  config.action_mailer.default_url_options = { :host => 'localhost:3000' }
Run Code Online (Sandbox Code Playgroud)

我该如何纠正这个问题?我去的时候刚开始接受这个3.2.8.如果它有帮助,我在Windows 7上.

jug*_*obo 10

RailsApps项目的以下文章详细解释了问题所在,并为RVM,OSX和Windows提供了多种解决方案.

http://railsapps.github.com/openssl-certificate-verify-failed.html

由于您使用的是Windows,因此您需要下载并安装证书文件才能解决问题.(有关更好的解释,请参阅上面的链接帖子)

关于这个问题还有一个github问题.

  • 来自文章(`rvm osx-ssl-certs update all`)的确认工作解决方案,用于在OSX上安装actionmailer 4.0.0(对于Rails 4.0.0/ruby​​-2.0.0-p247).谢谢! (3认同)