dovecot+postfixのメールサーバが2台ある。
iPhoneでメールの送受信ができる。
dkimとかなんとかも設定している。
iPhoneが2台あるので、2台目でも受信できるようにしようとアカウントを設定した。
CA証明書もメールで送りインストールした。
しかし、2台目のiPhoneでだけ受信できない。
CA証明書が違うものか?と思って有効期限やシリアルを見て同じであることを確認した。
サーバで拒否している?fail2banで落としている?
が、firewall-cmdやfail2banで落としているかどうかもパッとわからない。
tcpdumpしてみる。
受信できる方は自宅のwifiにつなぎ、できないほうはwifiを切ってIPが変わるようにする。
それぞれのIPアドレスを確認し(いわゆる確認君の自作版で)、tcpdumpしてみると、
どちらからもサーバへのアクセスがある。
/var/log/maillog をtail -f で見る。
不正アクセスというか、ブルートフォースアタックというか、いたずらなのか、認証失敗アクセスが大量に来ている。
その中に自分のiPhoneのログもあった。
Mar 13 03:16:59 hogehoge dovecot[862]: imap-login: Disconnected: Connection closed: SSL_accept() failed: error:0A000416:SSL routines::ssl/tls alert certificate unknown: SSL alert number 46 (no auth attempts in 0 secs): user=<>, rip=49.xxx.xxx.xxx, lip=xxx.xxx.xxx.xxx, TLS handshaking: SSL_accept() failed: error:0A000416:SSL routines::ssl/tls alert certificate unknown: SSL alert number 46, session=<cBUowtdMuuUxbXwH>
証明書がどうこう書いている。certificate unknown
証明書が不明、信頼できない、ということのようである。
証明書を見るのはクライアントである。クライアントがサーバの証明書を見る。それを信頼するためにサーバ証明書を発行(署名)したCA証明書をインストールしたのだ。
なのに、信頼できないと言っている。
copilotにこのログを投げつけ、いくつか情報を補足すると原因がわかった。
CA証明書はiPhoneにインストールしただけではだめで、
設定→一般→情報→証明書信頼設定 で、「ルート証明書を全面的に信頼」をオンにしなければならない。