CentOS8でdovecotのSSLログインが出来なくなった件

はじめに

今日 CentOS8で「dnf update」とやってみたら、dovecotもアップデートされ、突然 imaps ログインが失敗するようになりました。

アップデート後のdovecotのバージョンを調べてみると2.3.8 でした。
<pre”># dovecot –version 2.3.8 (9df20d2db)

また、/var/log/maillog を調べてみると、以下のようなエラーがたくさん出力されていました。

「imap-login: Error: Failed to initialize SSL server context: Can’t load DH parameters: error:1408518A:SSL routines:ssl3_ctx_ctrl:dh key too small: user=<>, rip=192.168.0.xxx, lip=192.168.0.yyy, session=<O2Ib0TSou8bAqG8d>」

どうやら、SSLに関する追加設定が必要なようです。

/etc/dovecot/conf.d/10-ssl.conf の編集

dovecot 2.3.8 の 10-ssl.conf を古いバージョンの 10-ssl.conf と比較してみると、以下のような項目が新たに追加されていました。
まさに「/var/log/maillog」への出力エラーにもあった「DH parameter」なる文言が出てきています。

# SSL DH parameters
# Generate new params with `openssl dhparam -out /etc/dovecot/dh.pem 4096`
# Or migrate from old ssl-parameters.dat file with the command dovecot
# gives on startup when ssl_dh is unset.
#ssl_dh = </etc/dovecot/dh.pem

# Minimum SSL protocol version to use. Potentially recognized values are SSLv3,
# TLSv1, TLSv1.1, and TLSv1.2, depending on the OpenSSL version used.
#ssl_min_protocol = TLSv1

そこで、上記のコメントアウトを解除することにします。

ssl_dh = </etc/dovecot/dh.pem      ← コメントアウトを解除
ssl_min_protocol = TLSv1.2         ← コメントアウトを解除し、値を変更

2行目のTLSバージョンは今回の不具合解決とは無縁ですが、デフォルトではTLS1.0のようですので、念のためTLS1.2に変更しました。

追記(2023.06):これまでメールチェッカー「befoo」がTLS1.0でなければ使えなかったので私はTLS1.0にしていましたが、最新の「befoo」ではTLS1.2でも通信できるようです。

/etc/dovecot/dh.pem の作成

dovecot 2.3.8 の 10-ssl.conf 内の注釈にもある通り、DH parameterを作成します。
作成先ディレクトリは、先程の「10-ssl.conf」の「ssl_dh」項の記述に合わせます。

# openssl dhparam -out /etc/dovecot/dh.pem 4096

DH parameterの作成にはかなりの時間が掛かります。私の環境では余裕で10分以上かかりました。
作成が終わったら dovecotを再起動します。

# systemctl restart dovecot

 動作確認

メーラからメールチェックしてみると、ちゃんとメールを見ることが出来ました。
「dnf update」をしたことでメールチェックが出来なくなるとはつゆ思いませんでしたので、最初は訳が分からず慌てましたが、無事に解決して良かった良かったー

コメント

タイトルとURLをコピーしました