Rails 3操作邮件生产环境中的OpenSSL :: SSL :: SSLError:主机名与服务器证书不匹配

5

我在生产服务器中发送电子邮件时遇到了Open 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,  
 :authentication => "plain",
 :enable_starttls_auto => true,
 :user_name => 'xxxxxxx',
 :password => 'xxxxx',
 :openssl_verify_mode  => 'none'
}

我已经看过之前的帖子中提到的解决方案,但是那并没有解决我的问题。

请问有人能够帮忙解决这个问题吗?


openssl_verify_mode => 'none' 应该可以工作。确保它没有被其他地方覆盖。不幸的是,在邮件中关闭主机名匹配是最好的选择,因为另一个选择是没有加密。机会式加密比没有加密更好。像第一次使用时信任(TOFU)这样的安全多元化策略会有所帮助,但这些系统很少得到实施。 - jww
证书中存在哪些主机名?是否存在拦截代理?Ruby是否遍历SANs,还是只查看CN? - jww
让我们在聊天中继续这个讨论:http://chat.stackoverflow.com/rooms/52122/discussion-between-shyam-visamsetty-and-jww - Shyam Visamsetty
这个证书看起来不错,应该不会导致你遇到的错误。你是从你的演示服务器运行了 openssl s_client 呢还是从你的工作站运行了它? - jww
接下来,我会查看OpenSSL和Ruby的版本。OpenSSL 0.9.8和1.0.0不是二进制兼容的。我不确定Ruby的兼容性。当编译0.9.8并使用1.0.1(反之亦然)时,OpenSSL会出现奇怪的错误和无法解释的崩溃。 - jww
显示剩余6条评论
1个回答

0

尝试在smtp_setings中添加域名

:domain => 'www.your-domain-name.com'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接