ポストフィックスデスタートティーエルエスヲシヨウスルホウホウ電子メールを安全に送受信するためには、通信の内容を暗号化することが重要です。 「STARTTLS」という仕組みを使うことで、メールの送受信時にデータを暗号化し、盗み見や改ざんを防ぐことができます。 この記事では、メールサーバーソフト「Postfix」でSTARTTLSを使用できるように設定する方法を説明します。目次PostfixでSTARTTLSを使用する方法STARTTLSを使うための準備証明書と秘密鍵の設定方法(無料)Postfixの設定手順注意点とセキュリティ対策まとめ■ 1. PostfixでSTARTTLSを使用する方法Postfix(ポストフィックス)は、多くのLinuxディストリビューションで利用可能なメールサーバー(MTA)用のオープンソースソフトウェアです。本記事はPostfix 2.3以降のバージョンを対象とし、STARTTLSを使用するために必要な準備、設定方法をご紹介します。■ 2. STARTTLSを使うための準備STARTTLSを使うためには、サーバーで「証明書」と「秘密鍵」を用意する必要があります。◇ 証明書とはサーバーの正当性を証明するデジタルデータです。これにより、相手が本物のサーバーであることを確認できます。◇ 準備するものサーバー証明書(例:cert.pem)秘密鍵(例:privkey.pem)これらは、信頼できる認証局(CA:Certificate Authority)から取得するか、自分で作成(自己署名証明書)することができます。■ 3. 証明書と秘密鍵を作成(無料)STARTTLSを使うためには、Postfixが利用できる「証明書(cert)」と「秘密鍵(key)」をサーバーに設定する必要があります。 ここでは、無料で作成できる2つの方法を紹介します。◇ (1)自己署名証明書を使う方法自己署名証明書は、自分のサーバー自身が発行する証明書です。 無料で簡単に作成できますが、他のサーバーからは「信頼されない証明書」と判断されることがあります。 テスト環境や社内メールサーバーではよく使われます。以下のコマンドで自己署名証明書を作成します。# mkdir -p /etc/ssl/private # mkdir -p /etc/ssl/certs# sudo openssl req -new -x509 -days 365 -nodes \ -out /etc/ssl/certs/server-cert.pem \ -keyout /etc/ssl/private/server-key.pem作成中に次のような項目が聞かれますが、必要な部分だけ入力すれば問題ありません。Country Name(国)State or Province Name(都道府県)Common Name(サーバーのドメイン名:例 www.example.com)作成後、以下のようにファイルが生成されます。証明書:/etc/ssl/certs/server-cert.pem秘密鍵:/etc/ssl/private/server-key.pem◇ (2)認証局(CA)の証明書を使う方法本番環境では、信頼できる認証局(CA)が発行した証明書を使うのが一般的です。 Let’s Encryptなどの無料の認証局を使えば、コストをかけずに取得できます。Let’s Encryptを使う場合、次のような手順になります。1.certbotのインストール # sudo apt install certbot 2.証明書の取得 # sudo certbot certonly –standalone -d [ドメイン名]3.証明書ファイルの保存場所 Let’s Encryptでは通常、以下のパスに証明書が作成されます。 証明書ファイル:/etc/letsencrypt/live/mail.example.com/fullchain.pem 秘密鍵ファイル:/etc/letsencrypt/live/mail.example.com/privkey.pemこの証明書をPostfixの設定で指定します。 Let’s Encryptの証明書は90日で期限切れになるため、自動更新を設定しておくことをおすすめします。■ 4. Postfixの設定手順STARTTLSを有効にするために、Postfixの設定ファイル(/etc/postfix/main.cf)を編集します。 以下は基本的な設定例です。◇ 受信側のSTARTTLS設定main.cf編集以下の通り「/etc/postfix/main.cf」を設定してください。smtpd_tls_cert_file = [証明書ファイルのパス]smtpd_tls_key_file = [秘密鍵ファイルのパス]smtp_tls_security_level = may Postfixの再読み込み設定を反映させるために、Postfixの再読み込みコマンドを実行します。# /etc/rc.d/init.d/postfix reloadPostfixの設定確認# /usr/sbin/postconf | grep -e smtpd_tls_security_level -e smtpd_tls_cert_file -e smtpd_tls_key_file以下のように出力されていればOKです。smtpd_tls_security_level = may smtpd_tls_cert_file =<証明書ファイルのパス> smtpd_tls_key_file =<秘密鍵ファイルのパス> ◇ 送信側のSTARTTLS設定main.cf編集以下の通り「/etc/postfix/main.cf」を設定してください。smtp_tls_security_level = may Postfixの再読み込み設定を反映させるために、Postfixを再起動します。# /etc/rc.d/init.d/postfix reloadPostfixの設定確認# /usr/sbin/postconf | grep smtpd_tls_security_level以下のように出力されていればOKです。smtp_tls_security_level = may ■ 5. 注意点とセキュリティ対策◇ 自己署名証明書を使う場合自己署名証明書でもSTARTTLSを利用できますが、他のサーバーから「信頼できない証明書」と判断されることがあります。 本番環境では、できるだけ信頼された認証局(CA)の証明書を使用しましょう。◇ ログを確認する通信の状態やエラーを確認するために、Postfixのログ(/var/log/maillog など)を定期的に確認しておきましょう。■ 6. まとめSTARTTLSは、メール通信を暗号化して安全にするための大切な仕組みです。 PostfixでSTARTTLSを設定することで、メールの送受信中に内容が盗み見られるリスクを大きく減らすことができます。証明書と秘密鍵を準備(自己署名または認証局の証明書)Postfix設定ファイルにTLS関連の設定を追加STARTTLSが動作しているか確認正しい証明書を使い、定期的にメンテナンスすることで、安全で信頼できるメール通信を実現できます。
技術情報
技術情報
PostfixでSTARTTLSを使用する方法
最終更新日:
2025年10月31日ポストフィックスデスタートティーエルエスヲシヨウスルホウホウ
電子メールを安全に送受信するためには、通信の内容を暗号化することが重要です。
「STARTTLS」という仕組みを使うことで、メールの送受信時にデータを暗号化し、盗み見や改ざんを防ぐことができます。
この記事では、メールサーバーソフト「Postfix」でSTARTTLSを使用できるように設定する方法を説明します。
目次
■ 1. PostfixでSTARTTLSを使用する方法
Postfix(ポストフィックス)は、多くのLinuxディストリビューションで利用可能なメールサーバー(MTA)用のオープンソースソフトウェアです。
本記事はPostfix 2.3以降のバージョンを対象とし、STARTTLSを使用するために必要な準備、設定方法をご紹介します。
■ 2. STARTTLSを使うための準備
STARTTLSを使うためには、サーバーで「証明書」と「秘密鍵」を用意する必要があります。
◇ 証明書とは
サーバーの正当性を証明するデジタルデータです。これにより、相手が本物のサーバーであることを確認できます。
◇ 準備するもの
これらは、信頼できる認証局(CA:Certificate Authority)から取得するか、自分で作成(自己署名証明書)することができます。
■ 3. 証明書と秘密鍵を作成(無料)
STARTTLSを使うためには、Postfixが利用できる「証明書(cert)」と「秘密鍵(key)」をサーバーに設定する必要があります。
ここでは、無料で作成できる2つの方法を紹介します。
◇ (1)自己署名証明書を使う方法
自己署名証明書は、自分のサーバー自身が発行する証明書です。
無料で簡単に作成できますが、他のサーバーからは「信頼されない証明書」と判断されることがあります。
テスト環境や社内メールサーバーではよく使われます。
以下のコマンドで自己署名証明書を作成します。
# mkdir -p /etc/ssl/private
# mkdir -p /etc/ssl/certs
# sudo openssl req -new -x509 -days 365 -nodes \
-out /etc/ssl/certs/server-cert.pem \
-keyout /etc/ssl/private/server-key.pem
作成中に次のような項目が聞かれますが、必要な部分だけ入力すれば問題ありません。
作成後、以下のようにファイルが生成されます。
◇ (2)認証局(CA)の証明書を使う方法
本番環境では、信頼できる認証局(CA)が発行した証明書を使うのが一般的です。
Let’s Encryptなどの無料の認証局を使えば、コストをかけずに取得できます。
Let’s Encryptを使う場合、次のような手順になります。
1.certbotのインストール
# sudo apt install certbot
2.証明書の取得
# sudo certbot certonly –standalone -d [ドメイン名]
3.証明書ファイルの保存場所
Let’s Encryptでは通常、以下のパスに証明書が作成されます。
証明書ファイル:/etc/letsencrypt/live/mail.example.com/fullchain.pem
秘密鍵ファイル:/etc/letsencrypt/live/mail.example.com/privkey.pem
この証明書をPostfixの設定で指定します。
Let’s Encryptの証明書は90日で期限切れになるため、自動更新を設定しておくことをおすすめします。
■ 4. Postfixの設定手順
STARTTLSを有効にするために、Postfixの設定ファイル(/etc/postfix/main.cf)を編集します。
以下は基本的な設定例です。
◇ 受信側のSTARTTLS設定
main.cf編集
以下の通り「/etc/postfix/main.cf」を設定してください。
smtpd_tls_cert_file = [証明書ファイルのパス]
smtpd_tls_key_file = [秘密鍵ファイルのパス]
smtp_tls_security_level = may
Postfixの再読み込み
設定を反映させるために、Postfixの再読み込みコマンドを実行します。
# /etc/rc.d/init.d/postfix reload
Postfixの設定確認
# /usr/sbin/postconf | grep -e smtpd_tls_security_level -e smtpd_tls_cert_file -e smtpd_tls_key_file
以下のように出力されていればOKです。
smtpd_tls_cert_file =<証明書ファイルのパス>
smtpd_tls_key_file =<秘密鍵ファイルのパス>
◇ 送信側のSTARTTLS設定
main.cf編集
以下の通り「/etc/postfix/main.cf」を設定してください。
smtp_tls_security_level = may
Postfixの再読み込み
設定を反映させるために、Postfixを再起動します。
# /etc/rc.d/init.d/postfix reload
Postfixの設定確認
# /usr/sbin/postconf | grep smtpd_tls_security_level
以下のように出力されていればOKです。
■ 5. 注意点とセキュリティ対策
◇ 自己署名証明書を使う場合
自己署名証明書でもSTARTTLSを利用できますが、他のサーバーから「信頼できない証明書」と判断されることがあります。
本番環境では、できるだけ信頼された認証局(CA)の証明書を使用しましょう。
◇ ログを確認する
通信の状態やエラーを確認するために、Postfixのログ(/var/log/maillog など)を定期的に確認しておきましょう。
■ 6. まとめ
STARTTLSは、メール通信を暗号化して安全にするための大切な仕組みです。
PostfixでSTARTTLSを設定することで、メールの送受信中に内容が盗み見られるリスクを大きく減らすことができます。
正しい証明書を使い、定期的にメンテナンスすることで、安全で信頼できるメール通信を実現できます。