メモ的な何か

VPSにメールサーバ追加しようとしてハマった件

概要

VPSにWPだけ立てとくのももったいないのでpepophilia.com用のメールサーバを追加で立てる。
色々ハマったのでメモ

結論

  • CloudFlareにDNSプロキシしてる場合はデフォルトでhttpトラフィック以外弾かれるので注意する
  • サブドメインにメールサーバを立てると証明書のホスト名が異なってGmailのSMTP設定がうまく行かない場合がある

やったこと

以下を参考にDockerでメールサーバ立てた。
異なる点は既にlet’s encryptで取得した証明書があるのでそれをつかうようdocker-compose.yamlに記載するくらい。

参考:Docker でメールサーバー(Postfix + Dovecot)を建てる

その後GmailでSMTPサーバの登録を試みたが、ホストに到達できない。

ドメインはお名前で取得して、ネームサーバはCloudFlareに移管している。
mail.pepophilia.comで問題なさそうに見える。

いろいろ調べていると、Cloudflareヘルプセンターで以下の記述を発見

Cloudflareのデフォルト設定では、HTTPトラフィックをプロキシすることのみが許可され、メールトラフィックを中断させます。

それじゃあ、とプロキシせずにAレコードで同じIPアドレスを設定してみた。

再度Gmail

調べた。

Gmailで外部のメールアドレスを登録している場合、SMTPサーバのホスト名と証明書のホスト名が異なると上記のTLS Negotiation failed が発生して接続できないことが原因でした。

証明書のホスト名を見ると pepophilia.com なので mail.pepophilia.com じゃだめな模様。

$ openssl s_client -connect mail.pepophilia.com:587 -starttls smtp
...
depth=0 CN = pepophilia.com
...

えーと、つまりCloudFlareに移管したドメインでGmailの設定を行おうとした場合は、
pepophilia.com のプロキシ外してMXレコード登録するしかないといいうこと?

再度GmailでSMTPサーバはは pepophilia.com にして追加

問題なく追加できた。

まとめ

CloudFlareにトラフィックプロキシさせていい感じに保護してもらおうと思っていたのに、
Gmailのセキュリティが固くてGmailに合わせるとCloudFlareに移管してる意味がまるで無くなってしまう。

素直にさくらにドメイン移管しなおして pepophilia.com にSMTPサーバを通すようにしよう。

あーつかれた。

One thought on “VPSにメールサーバ追加しようとしてハマった件

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA