Postfix認証用証明書の変更(Let’sEncrypt化)

Centos7上に構築したPostfix+Dovecotメールサーバの接続経路暗号化にはstartsslから取得した証明書を使用していましたが今回Let’sEncryptから証明書を取得し使用することにしました。その顛末と導入手順を公開します。

前提は、Let’sEncryptをWebサーバに導入済みであること、メールサーバ接続にTLSを使用する設定が済んでいること、独自ドメインの443ポートが公開されておりインターネットから接続できることです。関連する記事はこちらになります。

CentOS7でLet’sEncrypt導入

メールサーバ間の通信経路暗号化

1.証明書更新の動機

メールクライアントとして使用しているThunderBirdで先月中旬くらいから自ドメインのメール送受信ができなくなりました。Webメールでの送受信はできたのでしばらく放置していたのですが、いつまでたっても復旧しないのでその対処として最終的にはLet’sEncryptの証明書を導入しました。

当初は有効期限切れとか暗号強度の問題かと考え独自証明書を導入してみたのですが、すると今まではダンマリだったThunderBirdが「このサイトでは不正な証明書が使用されており、サイトの識別情報を取得できません。」などとエラー画面を出力し状況はもっとひどいことになってしまいました。

そこで、正当な証明書を発行してくれるLet’sEncrytでメールサーバの証明書を入手し設定することにしました。これならThunderbirdも文句はないでしょう。

2.証明書の取得

以下はLet’sEncrypt管理ツールcertbotをインストール済みの前提です。未導入の場合は当記事を参照して導入しておいてください。

(1)証明書の発行要求

独自ドメインの443ポートを公開しているサーバで以下のコマンドを発行します。Webサーバが起動しているとcertbotコマンドはエラーになってしまうので一時的にwebサーバを停止してから実行します。ここではnginxが起動していることとします。

ここで証明書を取得するドメインとして「mail.hogehoge.com」を指定していますがこれは各自の環境に合わせて変更してください。メールクライアントで指定するメールサーバのFQDNと合わせておく必要があります。

(2)証明書の確認

以下のディレクトリ「etc/letsencrypt/archive/mail.hogehoge.com」に証明書が存在するか確認します。


「cert1.pem,chain1.pem,fullchain1.pem,privkey1.pem」の4ファイルが確認できました。このディレクトリには証明書の実体が保存され、証明書が更新されるごとに各ファイルの数字が1つUPした新しいファイルが追加されて行きます。

実際に設定で使用するのは最新の証明書シンボリックリンクとして登録される以下のディレクトリにあるAilias名です。

3.メールサーバ証明書設定
(1)postfix設定

「main.cf」の以下2行、サーバ証明書と秘密キーに上記Alias名を設定します。

(2)dovecot設定

「10-master.conf」の以下2行をpostfixと同様に設定します。

(3)設定反映

設定ファイルをリロードし証明書の修正をpostfixとdovecotに反映させます。

4.総括

上記設定を実施した後、Thuderbirdを起動すると今度は問題無く独自ドメインからのメールを受信できました(セキュリティーの関係で画像などはありません)。

11/3時点でのGoogle検索ではこの問題の同件情報はなかったので推測とはなりますがThunderbirdのバージョンアップでセキュリティーが強化され、startsslの証明書を有効な証明書とみなさなくなったことが原因と考えられます。後でstartsslの証明書有効期限を確認すると2019年までになっていましたので有効期限切れが原因ではなかったようです。

今更ですが、Webサーバにlet’sencryptを導入した際に同時にメールサーバにも導入していれば何の問題もなかったのですが。手間を惜しんで仕事を後回しにすると痛い目に会うといういい教訓になりました。

5.参考にさせて頂いたサイト

SSLメールサーバ構築メモ Let’s Encrypt+Postfix+Dovecot(あぱーブログ様)

ありがとうございます。

スポンサーリンク
レクタングル大広告




レクタングル大広告




シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レクタングル大広告