
Rails 2.2 にアップグレードした多くの人と同様に、メールを送信するときに例外が発生しました。このバージョンの Rails 以降では、メールを送信するために tls を使用する必要があります。プロダクション ログ ファイルのメッセージは次のようになります。
hostname was not match with the server certificate
私はこれについて徹底的に調査と作業を行い、できる限りのことをしました。スライスのホスト名を ohlalaweb.com に変更しました。CL でコマンド 'hostname' を実行すると、次の結果が得られます。
ohlalaweb.com
Postfix は正常に動作しているようです。CL から Gmail、Yahoo、Google アプリの Gmail アカウントに問題なくメールを送信できます。cat /etc/postfix/main.cf の結果は次のとおりです。
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
myorigin = /etc/mailname
smmtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ohlalaweb.pem
smtpd_tls_key_file=/etc/ssl/certs/ohlalaweb.pem
smtpd_use_tls=yes
# SA created next line to force postfix to use self create certificate
smtpd_tls_auth_only=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = ohlalaweb.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
ohlalaweb.com ホスト名で SSL キーを再生成しました。
何かアイデアや提案はありますか?
答え1
ohlalaweb.com はドメイン名であり、ホスト名ではありません。少なくともそうであるべきではありません。ホスト名は、「mail.ohlalaweb.com」の「mail」のようなものです。サーバー名が証明書の CommonName フィールドにあるものと一致しないため、証明書の検証が失敗しています。
最も簡単な解決策は、証明書の CommonName フィールドのエントリと一致するようにサーバーの名前を変更することです。