はじめに
今日 CentOS8 で「dnf update」とやってみたら、dovecot もアップデートされ、突然 imaps ログインが失敗するようになりました。
アップデート後の dovecot のバージョンを調べてみると 2.3.8 でした。
# 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 ← コメントアウトを解除
私の場合は Windows端末で imap対応メールチェッカー「befoo」を使っているのですが、このソフトはTLSv1にしか対応していないので、上記のように「TLSv1」としています。
/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」をしたことでメールチェックが出来なくなるとはつゆ思いませんでしたので、最初は訳が分からず慌てましたが、無事に解決して良かった良かったー
コメント