iPhoneで Postfix や Dovecot に付属の証明書が使えなくなった

iPhone/iPad の iOS 16.4.1 にすると、メールのSSLで信頼されない証明書を無理やり信頼することにして使うと方法がなくなったようです。

今までは無理やり信頼すればできました。
証明書のドメイン名などはどうでもよくて経路を暗号化したいだけのとき、今までは自分で作った証明書やメールサーバーに付属の証明書でもSSLを使うことができたのですが、これができなくなりました。

ドメイン名が違ったり署名なしの証明書はダメ、メールサーバー Postfix や Dovecot に付属の証明書ではSSLでメールが送受信できなくったということです。
あらら・・・

まあ当たり前の措置なのかもしれませんが・・・
自分のPCのメーラーと自分のサーバーの間の送受信では別にドメインの正当性を証明したいわけじゃなくて、経路を暗号化したいだけなんだけどな、と思わなくもないです。

Postfix/Dovecot の TLS SNI対応

CentOS 8系から可能になった Postfix/DovecotメールサーバーのSSL/TLSをSNI対応。
(複数の証明書でマルチドメイン運用にする方法)

■ Dovecot TLS SNI対応

/etc/dovecot/conf.d/10-ssl.conf

# デフォルトの証明書(この記述も必要)
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem

# 以下を追加していく
local_name domain1.org {
  ssl_cert = </path/to/domain1_fullchain.crt
  ssl_key = </path/to/domain1_praivate.key
}
local_name domain2.org {
  ssl_cert = </path/to/domain2_fullchain.crt
  ssl_key = </path/to/domain2_praivate.key
}
・・・local_name を追加していく

他は通常のTLSの設定と同じ

■ Postfix TLS SNI対応

/etc/postfix/main.cf

# デフォルトの証明書(この記述も必要)
smtpd_tls_cert_file = /etc/pki/tls/certs/postfix.pem
smtpd_tls_key_file = /etc/pki/tls/private/postfix.key

# Postfix 3.4以上なら SNI可能
tls_server_sni_maps = hash:/etc/postfix/tls_server_sni_maps

他は通常のTLSの設定と同じ

証明書のマップファイル
/etc/postfix/tls_server_sni_maps

domain1 /path/to/domain1_praivate.key, /path/to/domain1_fullchain.crt
domain2 /path/to/domain2_praivate.key, /path/to/domain2_fullchain.crt
・・・

postmap -F hash:/etc/postfix/tls_server_sni_maps

★重要
証明書を更新時に postmap -F でマップdbを作り直す必要がある。

dovecot ver.1系と2系の違い

CentOS/RHELのデフォルトのPOP3/IMAP4メールサーバー dovecot がメジャーバージョンアップしました。
ある日 yum update でOSのモジュールアップデートをすると、dovecot がバージョン 1.xから 2.0 になりました。

このメジャーバージョンアップ、とんでもないことに、設定ファイルの数、構成が変わったのです。
今まで1つだった設定ファイルの数が増え、サブフォルダに用途別に配置されるようになりました。
どのファイルに何の設定を書くか仕様ががらっと変わってしまいました。
焦ります。こういうバージョンアップはできれば止めて欲しいものです。

ここに、バージョン1系と2系の設定ファイルの違いについてまとめます。

■ dovecot 1.x

(1) インストール

# yum install dovecot

(2) ファイル構成

設定ファイルは1つだけです。

/etc/dovecot.conf

続きを読む