メールサーバのSSL対応

動作確認済みシステム Debian 12

メールサーバに、SSL証明書の作成(Let’s Encrypt)で取得した証明書を設定して、SSLをサポートするようにします。

PostfixでSSLの設定を行います。

Postfixのmain.cfを開きます。

vi /etc/postfix/main.cf
Bash

もしソースコードからビルドしたのもであれば、以下で開きます。

vi /usr/local/etc/postfix/main.cf
Bash

最後のところに、以下を追記します。

smtpd_use_tls = yes
smtp_tls_security_level = may
smtpd_tls_cert_file = /etc/letsencrypt/live/example.com/cert.pem
smtpd_tls_key_file = /etc/letsencrypt/live/example.com/privkey.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/example.com/chain.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = !SSLv2, !SSLv3
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
smtp_tls_protocols = !SSLv2, !SSLv3
Plain text

master.cfでSMTPSポートの設定を行います。

Postfixのmaster.cfを開きます。

vi /etc/postfix/master.cf
Bash

もしソースコードからビルドしたのもであれば、以下で開きます。

vi /usr/local/etc/postfix/master.cf
Bash
# コメント解除もしくは追記
smtps     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
Plain text

DovecotでSSLの設定を行います。

Dovecotの10-ssl.confを開きます。

vi /etc/dovecot/conf.d/10-ssl.conf
Bash

もしソースコードからビルドしたのもであれば、以下で開きます。

vi /usr/local/etc/dovecot/conf.d/10-ssl.conf
Bash
# 変更
ssl_cert = </etc/letsencrypt/live/example.com/cert.pem
ssl_key = </etc/letsencrypt/live/example.com/privkey.pem

# 変更
ssl_ca = </etc/letsencrypt/live/example.com/chain.pem

# 追記
ssl_min_protocol = TLSv1.2
Plain text

Dovecotの10-master.confを開きます。

vi /etc/dovecot/conf.d/10-master.conf
Bash

もしソースコードからビルドしたのもであれば、以下で開きます。

vi /usr/local/etc/dovecot/conf.d/10-master.conf
Bash
service imap-login {
  inet_listener imaps {
    # コメント解除
    port = 993
    ssl = yes
  }
}
Plain text

各種サービスを再起動します。

systemctl restart postfix.service
systemctl restart dovecot.service
Bash

ファイアウォールの設定を行い、必要なポートを許可するようにします。

ufw allow 993/tcp
ufw allow 465/tcp
ufw reload
Bash