snakeoil1

Let’s Encrypt証明書をメールのSSL/TLS認証に使う

2016/10/23[公開] 2016/11/19[最終更新]

 自宅Debian JessieサーバーのPostfix+DovecotメールシステムのSSL/TLS認証に、Let’s Encrypt証明書を利用するように変更した内容です。いままでは、Postfixインストール時にデフォルトで設定されているsnakeoil証明書をそのまま使っていたので、メールソフト起動時の初回送受信でセキュリティ警告が出ていたのです。自分ひとりで使っているとはいえ、無料で利用できるようになったのなら、Let’s Encrypt証明書を利用しない手はないですね。

 この記事は、すでに稼働中のメールシステムに、WEBサーバーで利用中のLet’s Encrypt証明書を利用した内容です。前提が出来ていれば設定変更は簡単です。その前提が大変なワケですが。

前提

 Debian8 JessieサーバーでPostfix+Dovecotメールシステムが稼働している前提です。自宅サーバーのikt-s.comドメインで設定した過去記事がコチラです。

Debian8.0 JessieでPostfix + DovecotSASLメールサーバー構築

サブドメインの証明書を発行

 メールサーバー名は、一般的ならmail.○○○のサブドメインになると思われます。ウチの自宅サーバーではmail.ikt-s.comwww.ikt-s.com証明書のSAN(サブジェクトの別名)として追加発行しました。DNSサーバーには、MXレコードとは別にAレコードの設定も必要です。

Let’s Encrypt一枚でサブドメイン含む複数ドメインに対応できた

 証明書の発行・更新時に、acme-challengeを通すためにサブドメイン毎に公開ディレクトリーが必要なのを、acme-challenge用ディレクトリーを作成して複数SANでの運用がラクになる設定をしています。

Let’s Encrypt更新でTLS-SNI-01 challengeエラーを回避

Let’s Encrypt証明書を指定する

 ここまで準備が出来たら、PostfixとDovecotの設定ファイルの証明書ファイルのパスを変更するだけです。コモンネームwww.ikt-s.com証明書のSANとして、mail.ikt-s.comを追加した証明書ファイル(エイリアス)のパスがコチラです。

  • /etc/letsencrypt/live/www.ikt-s.com/cert.pem…サーバ証明書(公開鍵)
  • /etc/letsencrypt/live/www.ikt-s.com/privkey.pem…秘密鍵
  • /etc/letsencrypt/live/www.ikt-s.com/chain.pem…中間証明書
  • /etc/letsencrypt/live/www.ikt-s.com/fullchain.pem…サーバ証明書と中間証明書が結合されたファイル

Dovecotの設定変更

 Dovecotは /etc/dovecot/conf.d/10-ssl.conf ファイルを編集します。13-14行目あたりに証明書ファイルと秘密鍵ファイルのパスの記述をLet’s Encryptに合わせます。サーバ証明書と中間証明書が結合されたファイルであるfullchain.pemの方を利用しています。cert.pemのサーバー証明書の方でもいいのかもしれません。

Postfixの設定変更

 Postfixは /etc/postfix/main.cf ファイルを編集します。21-22行目あたりにあります。

サービス再起動

設定が有効になるのはサービス再起動後からです。

セキュリティ警告が解消

 メールソフトWindows Liveメール2012でのアカウント設定です。

postfix11
受信ポート995、送信ポート465でSSL有効なアカウント設定

 この設定で、メールソフト起動時の初回送受信時に、セキュリティ警告のメッセージが出なくなりました。自分しか使わないメールシステムなので、費用をかけてまで対応しようとは思っていなかったのが、Let’s Encryptのおかげでちゃんとした自宅メールシステムになった気がします。あとはcronの自動更新が上手くいけば完璧ですが、それは2ヶ月後の結果待ちです。(2016/11/18追記)cronでの自動更新成功確認済み

こちらの記事もどうぞ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です