sendmail.cf の CACertPath CACertFile ServerCertFile

sendmail の maillog を見ていると verify=FAIL と出る場合がありますが、これは検証スルーすれば通信自体には、なんら問題はありません。

でも気持ちわるい。なので解消のため少し調べました。もともと関係性がいまいちわからなかったのでね、いい機会です。検証してみました。

最近の SSL/TLS 証明書は中間証明書が必ず存在するので、中間証明書を何処にセットするのか悩むところです。

他のサイトで fullcahin.pem や chain.pem と使い分けて CACertFile にセットしていたり、 ServerCertFile へ、順番としてはサーバ証明書、次に中間証明書と、chain 的にセットしていたのですが、外部からサーバに対して通信すると first どうのこうのと、SSL検証がエラーとなるのです。手元の環境ではうまくいかないのです。

  • ServerKeyFile: 秘密鍵ファイルを指定
  • ServerCertFile: サーバ証明書ファイルを指定
  • CACertPath: このディレクトリへ、ca-root-nss.crt や、Mozilla 関連サイトなどで公開している ROOT 証明書(リスト)を保存(ファイル名はわかりやすければ何でも良し)し、中身を hash 値化したシンボリックリンクを作成。(これが読み込んでくれている気配がしない・・・)
  • CACertFile: サーバ証明書に対する中間証明書と、ca-root-nss.crt やMozilla 関連サイトなどで公開しているルート証明書 を 1 ファイルにして指定 (CACertPath から探してくれない為、中間証明書とルート証明書をまとめてファイル保存してファイル名指定)

いろいろ調査した結果この方法でうまく verify=OK となる様になりました。

「サーバ→外部」「外部→サーバ」ともに通信が行える様になり、「サーバ→外部 (STARTTLS=client の時)」は verify=OK と変化します。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG