PMailServer2 SSL/TLS 設定(PMailServer2 以降で利用可能)
***** Windows 2000 Server で SSL/TLS をご利用になる場合の注意 *****Windows 2000 で 2048bit の公開キーをご利用になる場合、Windows 2000 用高度暗号化パックがインストールされている必要がある場合があります。高度暗号化パックは Internet Explorer を更新する際などでもインストールが行われますが、別途インストールが必要になる場合がありますのでご注意下さい。
証明書は PKCS#12 で秘密鍵も含めた証明書が必要です。PKCS#7 では御利用できませんのでご注意ください。
SSL/TLSを有効にする。
SSL/TLS を有効にします。(SSL は SSLv3 のみです。SSLv2 は非対応です。)
有効にした場合、下記の機能が有効になります。
over SSL は通信の開始から SSL/TLS 通信を行います。
プロトコル名+STARTTLSを有効にする。
各プロトコルで STARTTLS を有効にします。SSL/TLSが有効になっている場合のみ有効です。
STARTTLS は通信の開始は平文通信を行い、STARTTLS 命令が発効されると、そこから SSL/TLS 通信を行います。
有効にした場合、下記の機能が有効になります。
(*1)
自サーバーのユーザーに対しては Submisstion Port で STARTTLS を利用できるようにし、外部から配信されるメールに対しては STARTTLS を許可しない場合などの組み合わせを行うことができます。
各プロトコルとポート番号の対応表
SSL/TLS 補足説明をご参照下さい。
有効期限切れは利用しない
証明書に設定されている有効期限をチェックし、有効期限切れになっている証明書の利用は行わないようにします。
有効期限が切れた証明書は証明書ストアから削除するのが好ましいですが、こちらの設定を有効にすることにより、そのまま削除せずともエラーになることは無くなります。
Submission を over SSL
通常 Submission ポートで SSL/TLS 通信を行う場合は、STARTTLS を利用しますが、Submission ポートを over SSL モードに切り替える場合にはチェックを入れます。
チェックされていない場合
Submission ポートは、平文通信又は STARTTLS による、SSL/TLS 通信を行います。
通常はチェックを入れずに利用します。ファイヤウォールやポート解放の関係でポート 587 のみアクセス可能で、且つSTARTTLS を利用できないクライアントを利用する場合のみ使用します。
転送時に SMTP over SSL を有効にする
サーバーが転送を行う際に転送先のポート番号が 465(SMTP over SSL)の場合に、SMTP over SSL を有効にして暗号化通信を行います。
この設定が有効になっていないと平文通信になりますのでご注意ください。
転送先のサーバーが STARTTLS に対応しておらず、SMTP over SSL のみしかサポートしていない場合に利用します。
本機能を正しく設定を行った場合、SMTPの中継サーバーだけでは無く、SMTPの SSL/TLSトンネルサーバーとして構築も可能となります。
Submission を over SSL
通常 Submission ポートで SSL/TLS 通信を行う場合は、STARTTLS を利用しますが、Submission ポートを over SSL モードに切り替える場合にはチェックを入れます。
サービス設定 POP3Sのみ有効
通常の POP3 を無効にし POP3 over SSL のみを有効にします。
POP3 の STARTTLS は、通常の POP3 ポートによって通信が行われます。クライアントが POP3 over SSL のみを使用する場合のみ有効にします。
サービス設定 IMAP4Sのみ有効
通常の IMAP4 を無効にし IMAP4 over SSL のみを有効にします。
IMAP4 の STARTTLS は、通常の IMAP4 ポートによって通信が行われます。クライアントが IMAP4 over SSL のみを使用する場合のみ有効にします。
プロトコル
SSL/TLS 通信時に利用するプロトコルを選択します。
プロトコルは SMTP / POP3 / IMAP4 に影響し、プロトコル(MTA) は MTA(配信)に影響します。
デフォルトを選択した場合は、SSL3 / TLS1 で通信を行い、指定を行った場合は、チェックを入れた全てのプロトコルで通信を行うことができます。
対応OSに含まれる古いバージョンの OS に対応する為、設定は残っていますが、デフォルトを利用して SSL3 / TLS1 の利用は強く推奨しません。
プロトコル(MTA) の TLS拡張を利用は、MTA がクライアントとして配信先のサーバーに接続を行う際に、TLS拡張情報を利用して配信先のサーバーを指定します。指定されるサーバーは DNS から参照し接続を行う際の FQDN が指定されます。
設定上の注意事項セキュリティ
本オプションは、下記 OS のみサポートの機能となります。
自動認識
各プロトコルへの接続直後の通信を監視し、TLS 通信だった場合に自動的に TLS通信に切り替えます。
メールクライアント側でポートの変更が出来ないが、TLS通信を行う場合などに利用します。
通常は利用する必要はありません。
また有効にした場合、最初の通信を監視する為、若干接続に時間がかかる場合があります。
ポート番号
各プロトコルで利用するポート番号を指定します。
特別な事情が無い限り変更する必要はありません。
従来の SMTPs は Submissions に名称が変更になりました。
証明書 - デフォルト FQDN
サーバー認証を行う証明書に登録されているホスト名(FQDN)を指定します。
この設定は、デフォルトで使用する証明書の FQDN を指定します。
クライアントが TLS で通信を行い、TLS Extension に対応している場合、対応したホスト名に自動的に切り替えが行われます。
TLS Extension に対応していない場合や、対応したホスト名の証明書が無い場合はデフォルトの証明書が利用されます。
デフォルト FQDN を指定しない場合、SMTP/POP3/IMAP4 の SSL/TLS 通信は無効になります。
ただし、STARTTLS for MTA は利用可能です(STARTTLS for MTA は SSL/TLS 通信のクライアント側になる為)
フレンドリ名
Windows の証明書ストアに複数の同名の証明書がインストールされている場合(期限切れ等で古い証明書と新しい証明書が同時にインストールされている場合等)、利用する証明書をフレンドリ名で識別して利用します。
フレンドリ名を指定している場合に TLS ErrorCode 0x80090327 Win32 [証明書の処理中に不明なエラーが発生しました。] というエラーが発生する場合があります。
これは証明書がインストールされており、フレンドリ名が指定されているが、該当するフレンドリ名で登録がされていない場合に発生する場合があります。
例:証明書のフレンドリ名「example.com - 2020」、PMailServer2 に指定したフレンドリ名「example.com」
フレンドリ名は完全一致で設定を行うか、複数の証明書をインストールしていない場合は空欄を指定して下さい。
証明書ストアのフレンドリ名
証明書ストアのフレンドリ名の設定
該当する証明書を右クリックしプロパティを開きます。
プロパティの「フレンドリ名」に任意の名前を入力してOKを押せば完了です。
(フレンドリ名の設定によって証明書へなにか影響が出ることはありません。)
証明書 - 証明書ストア
証明書をインストールした証明書ストアを選択します。
証明書ストアは
個人・ルート証明書・中間証明機関・信頼された発行元から選択します。
Version 2.44 より Webホスティングが追加されました。
アカウント
証明書をインストールする際には、アカウントを指定するか、LSA(Local System Account)を利用するかで証明書のインストール方法が変わります。
LocalSystemAccountと表示されている場合は、ローカルコンピュータに証明書がインストールされていると判断されています。
赤字でアカウント名が表示されている場合は、pmservice.account ファイルが作成されており、証明書がインストールされているアカウントが指定されている状態となります。
設定後に証明書が見つからない等のエラーが発生した場合は、インストールを行った証明書ストアの位置と「アカウント」をご確認下さい。
ログ設定
ログレベルとログファイル名を指定します。
STARTTLSのログは通常ポートでのログ中に記録されます。こちらの設定は over SSL 用のログです。
CryptAPI ログ
SSL/TLS 通信の開始時とハンドシェイクの状況とエラーログを別ファイルに記録を行います。
通常はオフにします。 SSL/TLS 通信時になんらかのエラーが発生し、繰り返し発生する場合はこちらのログを有効にして該当ログの内容をご確認下さい。
SMTP除外
SMTP から STARTTLS 除外ホスト
リモートホストを取得している場合に、指定したリモートホストだった場合、STARTTLS を無効にします。
STARTLS 自体は無効にはなっていません。EHLO コマンドで STARTTLS コマンドへの対応を出力しないようにするだけです。これは強制的に STARTTLS を行う場合もある為です。
ホスト名の指定は、ホスト名の部分一致で行われます。
(使用例としては、外部からは STARTTLS は利用するが、LAN内での転送の場合に STARTTLS を使用すると無駄な通信コストが発生する為には使用したくない場合等に利用します。)
STARTTLS for MTA - 基本設定
STARTTLS for MTA を有効にする
MTA が外部のメールサーバーに配信を行う際に STARTTLS コマンドを利用して SSL/TLS 通信で配信を行います。
フォールバック
STARTTLS for MTA で配信先で STARTTLS を行った場合に初期化やネゴジェーションでエラーが発生した場合の代替処理(フォールバック)を選択します。
フォールバック1 - 行わない。
フォールバックを行いません。配信が行われる際に TLS通信を試みて、失敗しても再送時も TLS通信を試みます。
フォールバック2 - 平文通信に移行
STARTTLS を試みて失敗した場合は、そのまま平文通信で続きの処理を行います。
配信先サーバーによってはそのまま回線を切断するケースがありますので、その場合は、下の「再送時に平文送信」をお選び下さい。
フォールバック3 - 再送時に平文送信1(デフォルト)
TLS通信と平文通信を交互に繰り返します。
1回目は TLS 通信を行い初期化またはハンドシェイクでエラーが発生した場合は、一旦切断を行い、次の再送時は平文で送信を行います。(平文通信でも失敗した場合は、次の再送時に再度 TLS 通信を試みこれを交互に繰り返します。)
その為、再送カウンタは必ず3つ以上の値を設定する必要があります。
配信先のサーバーと自サーバーの間で暗号化の種類やプロトコルで共通で利用できるものが無い場合(例えば配信先は SSL3.0 のみで自サーバーが TLS1.2 のみの場合など)はハンドシェイクでエラーになりますので、そのような場合でも送信を行いたい場合に利用します。
フォールバック4 - 再送時に平文送信2
TLS通信と平文通信を交互に繰り返します。
1回目は TLS 通信を行い初期化またはハンドシェイク、または通信上ででエラーが発生した場合は、一旦切断を行い、次の再送時は平文で送信を行います。(平文通信でも失敗した場合は、次の再送時に再度 TLS 通信を試みこれを交互に繰り返します。)
その為、再送カウンタは必ず3つ以上の値を設定する必要があります。
配信先のサーバーと自サーバーの間で暗号化の種類やプロトコルで共通で利用できるものが無い場合や、共通利用できるとしても稀にクライアント証明を要求する(SMTP の STARTTLS は自ユーザーの為に設定しており、外部 MTA からの STARTTLS を想定していないというケースがあります)場合など、TLS通信で Alert が発生し切断が行われる場合、更に単純な通信中のエラー(TLS通信は暗号・複合を伴う通信の為、平文通信と比較してパケットロス等に弱いです。特に低速回線など)などが発生した場合でも、次の再送信の際には平文で送信を行います。
出来る限り STARTTLS for MTA は行いたいが、再送などでエラーが出てもとりあえずは送りたい。という場合に利用します。
HELO処理
極一部のサーバーで STARTTLS for MTA 後に、HELO を受け付けないサーバーが存在しており、その場合は EHLO を送信する場合に選択します。
気になる場合は EHLO を設定しておくのが良いと思います。
気になって RFC3207 を確認したのですが、SHOULD(した方がいい)であって、MUST(しなければならない) じゃ無いんですよねぇ。
RFC 例題でも EHLO を送信しているのですが、MUST では無いので、デフォルトでは HELO を送信するようにしていて、実際、該当サーバーでの応答を確認するまで、殆どのサーバーが HELO で OK だったのですが
フォールバックの設定を行った場合は本体の再起動が必要です。
STARTTLS for MTA - 許可・除外
STARTTLS for MTA 許可ホスト
本設定で指定した配信先のみで STARTTLS を利用する場合に利用します。
本設定を行った場合、指定したホスト名以外では配信先が STARTTLS に対応していたとしても TLS通信は行われません。
STARTTLS for MTA から除外ホスト
STARTTLS for MTA を有効にしますと、配信先のサーバーで STARTTLS コマンドに対応している場合、SSL/TLS 通信を行って配信を行うようになりますが、配信の関係で特定の宛先のみ STARTTLS では無く通常配信を行いたい場合に、そのメールアドレスのドメイン名を設定することにより、指定された配信先には SSL/TLS 通信を行わないようになります。
また、SSL/TLS 通信には「双方で認証」「サーバー側で認証」「クライアント側で認証」の3種類があり、配信先のサーバーで外部からの受信(配信されたメールを受け取る)用では無く、内部ユーザー向けに STARTTLS を設定している場合もあります。
その場合、配信元側で認証が出来ない場合があり、SSL/TLS 通信の開始(ネゴジェーション)はできるが、通信自体ができない(ログには「ハンドルが無効」等のエラーメッセージが出力され、即エラーメールが返ります。)場合にも、こちらに設定することにより回避することができます。
許可と除外は排他的に動作します。
優先は許可になっており、許可が設定されている場合は、除外は評価されません。
(判定はファイルの存在の有無で行われていますので、メモ帳などで手動で編集し、設定を削除する場合は、ファイル自体を削除して下さい。)
記述方法
1行に1ドメイン(配信先のメールアドレスの @ の右側で判定されます。test@example.com の場合は、example.com、test@mail.example.com の場合は、mail.example.com と設定します。)
ドメイン名の指定の再に、[ ] で括った場合は完全一致で評価されます。
例:
example.com)
ドメイン名が example.com の場合にのみ評価対象となります。
例:
.example.com (行頭にピリオド有り)
ドメイン名が mail1.example.com や mail2.example.com 等の場合に評価対象となります。
本設定はサーバーの再起動が必要ありません。(マネージャーから保存した時点で反映されます。また Data フォルダにある、nomtatsl.txt を直接編集し保存しても反映されます。)
STARTTLS for MTA - ホスト別プロトコル指定
STARTTLS for MTA で配信先ごとにプロトコルを固定したい場合に利用します。
通常プロトコルは自動で選択されますので指定する必要はありませんが、STARTTLS for MTA で通常は TLS1.2 のみを指定するが、特定の配信先のみ TLS1.1 を指定したい場合などに利用します。
対応暗号スイート一覧
Version 2.40 より本画面はメニューのツールから参照を行うように変更されました。
OS にインストールされている暗号スイートの一覧を確認します。
PMailServer2 は Windows に搭載されている CryptAPI 及び schannel を利用して TLS通信を行います。
その際に利用される暗号方式はこちらで確認できた暗号が利用されます。
暗号スイート一覧はグループポリシーエディタから確認することができます。
暗号の優先順位の変更や有効・無効についてもグループポリシーエディタから行って下さい。
証明書ストア参照
Version 2.40 より本画面はメニューのツールから参照を行うように変更されました。
証明書ストアにインストールされている証明書の一覧を確認します。
OS 標準の証明書ストアの一覧(certmgr.msc)とはフィルタの方法が違います。
簡易的に表示を行っておりますので、発行元等の詳細は OS の証明書ストアからご参照下さい。
証明書ストアに証明書をインストールする際に自動で行うと PMailServer2 で認識しない場所にインストールが行われる場合があります。
その場合は、こちらから参照を行いインストールを行った証明書が認識されているかをご確認下さい。
また、PMailServer2 は証明書の識別にフレンド名も利用します。
証明書の更新を行った際に、古い証明書が同じフレンドリ名でインストールされている場合、正しく通信ができない。またはクライアント側から証明書の期限が切れています。と警告が出る場合があります。
その場合は、フレンドリ名を重複しない名前に変更をして頂く、または期限切れになった証明書をアンインストールして下さい。(PMailServer2 は証明書の期限は確認しません。)