※この手順によって生じた影響や結果について、弊社では一切の責任は負いかねます。
必要なファイルはpem書式の秘密鍵、サーバ証明書、中間証明書です。
一般にUnix系アプリケーションの証明書関係ファイルはデフォルトでpem書式になっています。
秘密鍵はCSRを作成したときにできています。
ここでは /etc/mail/certs としていますが、それ以外のディレクトリを指定することもできます。その場合は、一般ユーザーの書き込み権限のないディレクトリとします。
ここでは秘密鍵のファイル名を【mail.example.com.key.pem】、サーバ証明書のファイル名を【mail.example.com.crt.pem】、中間証明書のファイル名を【cacert.pem】としていますが、拡張子も含め分かり易い任意の名前を指定できます。
# cd /etc/mail/certs # ln -s cacert.pem `openssl x509 -noout -hash < cacert.pem`.0
【sendmail.cf】を直接編集することも可能ですが、ここでは、推奨方法である【sendmail.mc】を編集し、その後【sendmail.cf】に反映させる方法で説明します。
sendmailでTLSを利用する場合、二つの接続方法があります。一つはSTARTTLSと呼ばれる方法で、まずは通常の25番ポートやSubmission Port 587番ポートでサーバーに接続し、クライアントとサーバー双方がTLSに対応していることが確認された時点でTLS接続に切り替えるという方法です。
もう一つの方法はSTMPsプロトコルを使う方法です。この方法では最初から暗号化された接続になります。
STARTTLS を有効にするには、以下のようにサーバ証明書のディレクトリと名前を【sendmail.mc】で指定します。
以下を追加することもできます。
define(`confTLS_SRV_OPTIONS’, `V’)dnl を設定した場合は、クライアント認証要求が無効になります。
define(`confAUTH_OPTIONS’, `A p y’)dnl を設定するとSMTP認証の安全性が高まります。
STMPsを使う場合は上記に加えて、以下の指定を【sendmail.mc】に追加する必要があります。
STMPsプロトコルを使う場合はサーバーの465番ポートが利用可能になっていることを確認してください。
# cd /etc/mail # m4 sendmail.mc > sendmail.cf
# /etc/init.d/sendmail stop # /etc/init.d/sendmail start
メールクライアントの指定で「このサーバーはセキュリティで保護された接続(SSL)が必要(Windows Live例)」のように指定すると、ポート番号465を指定してTLS/SSLを利用してメールを送信できます。この場合、通信は開始時から暗号化されます。
メールクライアントの指定で「このサーバーはセキュリティで保護された接続(SSL)が必要(Windows Live例)」のように指定すると、ポート番号25,587を指定してTLS/SSLを利用してメールを送信できます。この場合、通信は暗号化されずに開始されますが、STARTTLSによって認証ID、パスワードを含むすべての通信が暗号化されます。
SMTPサーバー名に証明書のホスト名を指定すれば、すべてのホスト名でTLS/SSLを利用したメール送信ができます。
WildCard Plus、マルチドメイン証明書、EVマルチドメイン証明書の場合は、SMTPサーバー名にメールで使っているホスト名を指定することも可能です。