postfix & dovecotでSSL化していたメールサーバーの証明書の期限が切れていたため、更新したのだが下記のエラーが表示される。
2024-11-07T04:35:55.635061+09:00 jesus dovecot: imap-login: Disconnected: Connection closed: SSL_accept() failed: error:0A000412:SSL routines::sslv3 alert bad certificate: SSL alert number 42 (no auth attempts in 0 secs): user=<>, rip=xxx.xxx.xx.xxx, lip=xxx.xxx.xxx.xxx, TLS handshaking: SSL_accept()
以前は送受信できていて変えたのは証明書だけだから証明書の問題かなと思い、何度も証明書を作り直したのだがなおらない。
ログをみると sslv3 と書いてあるが、sslv3はもう使用されない、使用すべきでない古いプロトコルである。
postfix&dovecot でプロトコルバージョンの設定をしたが変わらない。
ログの内容でググると、「証明書が中間証明書を含んだチェーンんになっていない」という情報が出てくるのだが、チェーン証明書など使わないでも以前は送受信できていたので関係ないと思っていた。
DovecotのSSLエラー - GentooやIoTの覚え書きブログ
しかしどうしてもなおらないので、下記を参考にチェーン証明書を作って置き換えてみたらうまくいった....
OpenSSLでチェーン証明書を作成する方法 #OpenSSL - Qiita
しかしなんでチェーン証明書でないとsslv3のエラーになるのか... 納得いかない...
チェーン証明書の作り方なんて知らなかったから、間違いなく以前は普通のサーバー証明書で動いていたはず。
ちなみに証明書はopensslを使って作った自己CA(?)で署名したヤツである。