try 通过控制台发送邮箱时,我收到以下错误:

OpenSSL::SSL::SSLError: hostname was not match with the server certificate

问题是我真的不太了解证书之类的东西,或者真的不知道如何开始解决这个问题,我试着用openssl做一些调查,这是返回的证书.

我不知道服务器上运行的Postfix或我的rails应用程序是否有问题,非常感谢您的帮助或提示.

~% openssl s_client -connect mail.myhostname.com:25 -starttls smtp
CONNECTED(00000003)
depth=0 /CN=myhostname
verify error:num=18:self signed certificate
verify return:1
depth=0 /CN=myhostname
verify return:1
---
Certificate chain
 0 s:/CN=myhostname
   i:/CN=myhostname
---
Server certificate
-----BEGIN CERTIFICATE-----
[...redacted...]
-----END CERTIFICATE-----
subject=/CN=myhostname
issuer=/CN=myhostname
---
No client certificate CA names sent
---
SSL handshake has read 1203 bytes and written 360 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : DHE-RSA-AES256-SHA
    Session-ID: 1AA4B8BFAAA85DA9ED4755194C50311670E57C35B8C51F9C2749936DA11918E4
    Session-ID-ctx: 
    Master-Key: 9B432F1DE9F3580DCC6208C76F96631DC5A4BC517BDBADD5F514414DCF34AC526C30687B96C5C4742E9583555A118232
    Key-Arg   : None
    Start Time: 1292985376
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---
250 DSN

推荐答案

一个比公认答案更好的解决方案(就安全性而言)是:

ActionMailer::Base.smtp_settings = {
  :address              => "mail.foo.com",
  :port                 => 587,
  :domain               => "foo.com",
  :user_name            => "addy@foo.com",
  :password             => "foofoo",
  :authentication       => "plain",
  :enable_starttls_auto => true,
  :openssl_verify_mode  => 'none'
}

这样,您仍将使用加密,但证书的验证将被禁用(并且不会出现任何错误).

Ruby-on-rails相关问答推荐

GO AES GCM加密在解密时出错&S

Rails 7 应用程序 - 引用模型文件时出现未初始化常量错误

从 rails 5 迁移到 rails 6

无效的单表继承类型:Rails

如何启动 rails 控制台并专门使用测试数据库?

jbuilder vs rails-api/active_model_serializers 用于 Rails 4 中的 JSON 处理

使用 RVM 时如何安装 Ruby gem?

FactoryGirl + Faker - 为数据库种子数据中的每个对象生成相同的数据

将 defer 属性添加到 javascript_include_tag Rails

如何从 ActiveRecord 中的每个组中获取最新记录?

了解 Rails 验证:allow_blank 有什么作用?

如何在我的 Gemfile 中找到未使用的Ruby

导轨链接到:远程

如何仅使用 PostgreSQL 创建简单的模糊搜索?

如何在 Rails 中设置路由的默认格式?

Ruby on Rails:如何在 select_tag 中使用默认占位符?

Ruby 中有与 slice 函数相反的函数吗?

使用 ActiveRecord 获取列名

没有UTC的Rails 3默认日期时间格式

为什么 Rails 需要 JavaScript 运行时?