メールサーバーでSSLが使えるようにしてみたいと思います。メールサーバーに使用する証明書はWebサーバー用にLet’s Encryptで取得したものを流用できます。
CentOS7にpostfix+dovecotで構築したメールサーバーが運用できていて、webサーバー用にLet’s Encryptで証明書を取得してssl設定と公開が完了しているのが前提になります。
Let’s Encrypt証明書の確認
Let’s Encryptで取得した証明書のファイルは4つあります。
ファイルの保存先は/etc/letsencrypt/live/mydomain.com/になります。
※mydomain.comはご自身のドメインです。
cert.pem | サーバー証明書 |
chain.pem | 中間証明書 |
fullchain.pem | サーバー証明書と中間証明書をまとめたもの |
privkey.pem | 秘密鍵 |
Let’s Encrypt証明書の設定
postfixのファイルへ設定
まずPostfixを確認します。
[root@fserver ~]# rpm -qa | grep postfix
postfix-2.10.1-7.el7.x86_64
Let’s Encryptのファイルを/etc/postfix/main.cfに設定します
4つのファイルのうちcert.pem、privkey.pem、fullchain.pemの3つのファイルを/etc/postfix/main.cfの最下行に設定します。
※mydomain.comはご自身のドメインにしてください。
※nanoエディタの場合の例です。
[root@fserver ~]# nano /etc/postfix/main.cf #最下行にLet's Encryptのファイルを設定#
smtpd_tls_cert_file = /etc/letsencrypt/live/mydomain.com/cert.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mydomain.com/privkey.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/mydomain.com/fullchain.pem
dovecotのファイルへ設定
/etc/dovecot/conf.d/10-ssl.confへ証明書のファイルを設定します。
設定ファイルはfullchain.pem、privkey.pemの2つです。
※mydomain.comはご自身のドメインにしてください。
[root@fserver ~]# /etc/dovecot/conf.d/10-ssl.conf
#8行目の先頭#を入れてrequiredをyesに書き換えて追記#
#ssl = required
ssl = yes
#dovecotの証明書設定ファイルの15.16行目に#を入れ無効化します#
#ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
#ssl_key = </etc/pki/dovecot/private/dovecot.pem
#17.18行目にLet's Encryptのファイルを設定#
ssl_cert = </etc/letsencrypt/live/mydomain.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mydomain.com/privkey.pem</pre
送信ポート設定
送信ポート設定を変更します。初期の設定では送信に25番ポートを使用するようになっているのでSSL用に変更します。
設定ファイルは/etc/postfix/master.cfになります。
465番ポートを使用する場合
[root@fserver ~]# nano /etc/postfix/master.cf
#26行目~29行目の#を削除して有効にします#
smtps inet n - n - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
587番ポートを使用する場合
プロバイダーによりOP25B対策がされているときはサブミッションポートを使用します。
[root@fserver ~]# nano /etc/postfix/master.cf
#16行目と19行目の#を削除して有効にします#
submission inet n - n - - smtpd
# -o syslog_name=postfix/submission
# -o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
firewalldの設定
#受信に995番ポート(pop3s)使用する場合#
[root@takemon ~]# firewall-cmd --permanent --add-service=pop3s
#受信に993番ポート(imaps)使用する場合#
[root@takemon ~]# firewall-cmd --permanent --add-service=imaps
#送信に465番ポート(smtps)使用する場合#
[root@takemon ~]# firewall-cmd --permanent --add-service=smtps
#送信に587番サブミッションポート(submission)使用する場合#
[root@takemon ~]# firewall-cmd --permanent --add-service=smtp-submission
#firewalldの設定を反映#
[root@takemon ~]# firewall-cmd --reload
ポート開放とポートチェック
各設定が完了したらルーターのポート開放をします。
995番ポートまたは993番ポート
465番ポートまたは587番ポート
ルーターの設定が完了したら下記のサイトで外部からポートが開いているかチェックします。
各項目に入力してPortチェック実行をクリックします。その他のポートもチェックします。
結果が表示されるのでアクセスできましたの表示を確認します。アクセスできない場合はルーターとfirewalldの設定をもう一度見直してください。