0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

マルチドメインのpostfix運用で、証明書期限切れのメッセージが送信時に出るようになり途方に暮れたら

Posted at

マルチドメインのpostfixを運用していて、ある日突然メール送信時に、証明書の期限が切れているとのエラーが出るようになりました。証明書は更新しているのになぜ?とお悩みの方へヒントになれば幸いです。

発生現象・環境・背景

・postfix(3.5.9, linux) main.cf で複数ホスト名の証明書を使い分けるため、tls_server_sni_mapsを定義。postmapコマンドで.dbファイルを作成。
・各証明書はLet’sEncryptで3ヶ月ごとにcertbot renewコマンドで自動更新。/etc/letsencrypt/live/(ホスト名)に最新の証明書へのシンボリックリンクがあり、このパスをpostfixのtls_server_sni_mapsに定義。つまりいつでも最新の証明書がそのパスにある。
・メール送信時に証明書の期限切れで送信エラーとなる。opensslコマンドで確認するも、証明書は有効なものに更新済み。
openssl s_client -connect ホスト名:ポート -starttls smtp |openssl x509 -noout -dates

原因と対応

・tls_server_sni_mapsのdbファイルは単なるホスト名ごとの証明書へのパス(ファイル名)のテーブルと思いきや、db作成時点の証明書の本体がガッツリ入っていた。つまり、postmapコマンドを実行した時のシンボリックリンク先の証明書の中身。以下でそれを確認。
postmap -q ホスト名 /etc/postfix/(tls_server_sni_mapsのファイル名)| nkf -mBW
・証明書更新の際にはpostmapコマンドでtls_server_sni_mapsのdbファイルを再作成することにして解決

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?