Назад | Перейти на главную страницу

OpenSSL :: SSL :: SSLError: имя хоста «smtp.gmail.com» не соответствует сертификату сервера

Это то, что я установил в файле setup_email.rb,

if Rails.env.production?
  ActionMailer::Base.smtp_settings = {
      :address              => "smtp.gmail.com",
      :port                 => "587",
      :domain               => "gmail.com",
      :user_name            => "username",
      :password             => "mypass",
      :authentication       => "login",
      :enable_starttls_auto => true
  }
end

Этот код работает в среде разработки и подготовки..

Этот код отлично работал на производстве, внезапно через несколько дней он перестал работать, и я получаю сообщение об ошибке. Я пробовал настроить openssl_verify_mode: none все еще не работает.

Затем я изменил учетную запись Gmail, но получил ту же ошибку. Похоже на ошибку на стороне сервера

Ошибка:

OpenSSL :: SSL :: SSLError: имя хоста "smtp.gmail.com" не соответствует сертификату сервера

Я пробовал разные методы в Интернете, но они не работают. Любая помощь будет оценена.

В одной производственной системе используют:

openssl s_client -connect smtp.gmail.com:587 -starttls smtp -showcerts

В моей системе вывод включает:

subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=smtp.gmail.com

Ваше программное обеспечение smtp, вероятно, проверяет CN = smtp.gmail.com и видит там что-то еще. Например, кто-то мог встать посередине между вами и gmail.com. Не обязательно враждебно, может быть простым /etc/hosts модификация или изменение прокси-сервера socks.