はじめに
今日 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」をしたことでメールチェックが出来なくなるとはつゆ思いませんでしたので、最初は訳が分からず慌てましたが、無事に解決して良かった良かったー
コメント