技術解説 · 出典付きの回答

TLSが使うポート番号は?

TLSには、共通の単一ポートはありません。TLSは多くのアプリケーションプロトコルを保護しており、保護される各サービスは割り当てられた独自のポートを使うか、STARTTLSなどのコマンドで既存の接続をアップグレードします。代表的な例は、HTTPSの443、暗黙的TLSによるSMTPサブミッションの465、TLS経由のIMAPの993、TLS経由のPOP3の995です。

TLSに共通のポートはない

TLSはアプリケーションプロトコルに依存しないセキュリティレイヤーであるため、正しいポートはTLS自体ではなく、その上で動くサービスによって決まります。HTTPSは一般的にTCPポート443を使いますが、保護されたメールアクセスは別のポートを使います。したがって、サーバーがTLSをサポートしていると言うだけでは、設定情報として不十分です。クライアントには、ホスト名、アプリケーションプロトコル、ポート、想定されるTLSモードも必要です。

暗黙的TLSとSTARTTLSではポートの使い方が異なる

暗黙的TLSでは、TCP接続が開かれた直後にTLSハンドシェイクが始まります。メールでの例には、ポート465のSMTPサブミッション、993のTLS経由のIMAP、995のTLS経由のPOP3があります。STARTTLSでは、クライアントはまずアプリケーションプロトコルで接続し、その後TLSへのアップグレードを要求します。クライアントとサーバーは同じモードで合意する必要があり、ポート465を選びながらSTARTTLSを設定すると、ハンドシェイクのエラーやタイムアウトが発生することがよくあります。

SMTPクライアントはどのTLSポートを使うべきか

認証付きのメッセージのサブミッションには、メールプロバイダーのドキュメントに記載された正確なポートとセキュリティモードを使ってください。ポート587は一般的にSMTPサブミッションの後にSTARTTLSを使い、ポート465は最初のバイトから暗黙的TLSを使います。ポート25は主にサーバー間のSMTPリレーに使われ、STARTTLSを日和見的に使うことがあります。ポート2525はプロバイダー固有の代替ポートであり、TLSやSMTPの共通ポートではありません。

TLSポートの障害を診断する方法

認証情報や証明書を変更する前に、プロバイダーのホスト名、ポート、暗号化モードを確認してください。基本的なTCPの到達性をテストしてから、サーバーがすぐにTLSハンドシェイクを求めているのか、STARTTLSの前にアプリケーションのコマンドを求めているのかを調べます。タイムアウトは通常、ルーティング、ファイアウォール、ポートのブロックが原因です。すぐにプロトコルエラーが出る場合は、暗黙的TLSとSTARTTLSの不一致を示していることがよくあります。証明書の検証と認証は、接続モードが正しくなってから行われます。

よく寄せられる質問

ポート443はTLSのポートですか?

ポート443は、TLS上でHTTPを運ぶHTTPSの標準ポートです。TLSで保護されるすべてのプロトコルに共通のポートではありません。

SMTPではポート465と587のどちらを使うべきですか?

プロバイダーのドキュメントに記載された設定を使ってください。ポート465は通常、暗黙的TLSを前提としており、ポート587は通常、SMTPで始まってからSTARTTLSでアップグレードします。

STARTTLSにはTLS用の別のポートが必要ですか?

いいえ。STARTTLSは、サーバーが対応を通知し、クライアントがTLSを要求した後に、設定されたポート上の既存のアプリケーションプロトコルの接続をアップグレードします。

正しいポートなのにTLS接続が失敗するのはなぜですか?

ポートに到達できても、TLSモードが間違っている場合があります。エンドポイントが暗黙的TLSとSTARTTLSのどちらを想定しているかを確認し、その後ホスト名と証明書を確認してください。

一次情報源