Ruby on rails Rails 3 action mailer产品OpenSSL::SSL::SSLError:主机名与服务器证书不匹配
在生产服务器中发送电子邮件时,我面临打开SSL证书错误的问题。在开发模式下,一切正常。下面是我在生产模式下的配置代码Ruby on rails Rails 3 action mailer产品OpenSSL::SSL::SSLError:主机名与服务器证书不匹配,ruby-on-rails,ruby-on-rails-3.2,openssl,actionmailer,Ruby On Rails,Ruby On Rails 3.2,Openssl,Actionmailer,在生产服务器中发送电子邮件时,我面临打开SSL证书错误的问题。在开发模式下,一切正常。下面是我在生产模式下的配置代码 config.action_mailer.raise_delivery_errors = true config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => "smtp.gmail.com", :port => 587,
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:authentication => "plain",
:enable_starttls_auto => true,
:user_name => 'xxxxxxx',
:password => 'xxxxx',
:openssl_verify_mode => 'none'
}
我已经研究了中的解决方案,但这并不能解决我的问题
有人能帮忙吗?尝试在smtp\u设置中添加域名
:domain => 'www.your-domain-name.com'
openssl\u验证\u模式=>“无”
应该可以工作。确保它没有被覆盖的地方。遗憾的是,关闭主机名匹配是邮件中最好的选择,因为另一个选择是不加密。机会主义加密比不加密好。像首次使用信任(Trust On First Use,TOFU)这样的安全多样化策略会有所帮助,但这些系统很少得到实施。谢谢你的评论。实际上,我也尝试过禁用加密,方法是:enable\u starttls\u auto=>false,但仍然得到相同的错误。不,您想要enable\u starttls\u auto=>true
。这让你得到了机会主义加密。问题似乎出在主机名验证上,这似乎很奇怪,因为谷歌证书的格式很好(不像托管公司那样不注意细节)。您的问题在别处。证书中有什么主机名?是否有拦截代理在起作用?Ruby是遍历SAN,还是只查看CN?请尝试查看证书:$openssl s_client-tls1-starttls smtp-connect smtp.gmail.com:587-servername smtp.gmail.com 2>/dev/null | openssl x509-text-noout
。