独自ドメインでのrails Action Mailerのエラーを直す(Postfix編)


独自ドメイン設定の際に面倒だったのでメモ(Ubuntu 14.04)。

証明書とドメイン名が合っていないと認めません

postfixが使うサーバーの証明書とActionMailerのドメインが合っていないと

OpenSSL::SSL::SSLError (hostname *** does not match the server certificate)

と怒られる

解決策その1

SSLを使わなければいい!

config/application.rb
    config.action_mailer.smtp_settings = {
      :address => 'example.jp',
      :openssl_verify_mode  => 'none' #←これな
    }

…というのは乱暴すぎるので

解決策その2

証明書を作る

openssl genrsa -des3 -out server.key 2048
openssl req -new -key server.key -out server.csr

住所とかいろいろ聞かれるので適当に答える←だめ
コモンネームが重要!独自ドメインを入力する

Common Name (eg, YOUR name) []:example.jp

postfixはパスフレーズのついた証明書が読めないので解除してあげる

openssl rsa -in server.key -out server_noenc.key

コモンネームが設定できたかは以下で確認

openssl x509 -noout -text -in server.crt

Postfix側の設定

証明書ができたらPostfixに教えてあげる

/etc/postfix/main.cf
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/server.crt
smtpd_tls_key_file=/etc/ssl/private/server_noenc.key

# 下記も設定
myhostname = example.jp
mydestination = localdomain, localhost, localhost.localdomain, localhost, example.jp

設定をリロード

sudo service postfix reload

※サービス登録してない場合は起動スクリプトで^^

以上。

参照元

https://help.ubuntu.com/lts/serverguide/postfix.html
https://help.ubuntu.com/lts/serverguide/certificates-and-security.html
http://oxynotes.com/?p=4547
http://shimotori.github.io/blog-it/2013/05/15/1-rails-actionmailer-hostname-does-not-match-the-server-certificate/
https://www.geotrust.co.jp/support/ssl/csr/apache_openssl_new.html

spfも設定すると迷惑メールになりにくいのかも

お名前の場合
http://powerbiz.jp/abiz/spfrecord/archives/7763/