HTTPS

ポート 443: 安全な Web トラフィック用の HTTPS ポート

HTTPS がポート 443 を使用する理由、ポート 443 をいつ開くか、サービスを実行する方法、および安全なトラフィックがサーバーに到達できることを確認する方法を理解します。

既定ポート
443
プロトコル
TCP
主な用途
暗号化された Web・API トラフィック

ポート 443 とは何ですか?

ポート 443 は、HTTP の暗号化バージョンである HTTPS のデフォルトの TCP ポートです。ブラウザーが https:// で始まるアドレスを開いてカスタム ポートが表示されていない場合、ブラウザーはポート 443 に接続し、TLS をネゴシエートして証明書を検証し、暗号化されたセッションを通じて HTTP リクエストを送信します。

  • デフォルトのセキュア Web ポート

    ほとんどの Web サイト、API、リバース プロキシ、Webhook、コントロール パネル、および CDN オリジンは、ブラウザー互換の暗号化トラフィックが必要な場合に 443 を使用します。

  • 443 を開くだけで仕事の半分にすぎません

    ファイアウォール ルールでポートを許可できますが、Nginx、Apache、Caddy、IIS、ロード バランサーなどの Web サーバーも 443 でリッスンする必要があります。

HTTPS がポート 443 を使用する理由

HTTPS は、Web セッションを保護する標準的な方法になりました。プレーンな HTTP では、ネットワーク パスを監視できるすべてのユーザーにリクエスト、応答、Cookie、およびフォーム データが公開されるためです。ポート 443 は、クライアントとサーバーに、暗号化された会話を開始するための予測可能な場所を提供します。ブラウザではユーザーがポート番号を入力する必要がなく、インフラストラクチャ チームは既知のデフォルトに基づいてファイアウォール、プロキシ、監視ルールを作成できます。

番号自体は、IANA が管理する既知のポート レジストリから取得されます。初期の安全な Web トラフィックでは SSL が使用され、その後、SSL が最新のセキュリティ プロトコルとして TLS に置き換えられました。アプリケーション プロトコルは依然として HTTP であるため、HTTPS という名前が残りましたが、TLS で保護されたチャネル内で伝送されます。現在、SSL 証明書というと、通常はポート 443 で HTTPS によって使用される TLS 証明書を意味します。

ポート 443 とポート 80

ポート 80 は HTTP のデフォルトのポートです。これは、初期リダイレクト、証明書の自動化の課題、内部ヘルス チェック、レガシー クライアントとの互換性にとって依然として役立ちます。ポート 443 は、ブラウザが通常の HTTP トラフィックが開始される前に TLS ハンドシェイクを予期しているため、異なります。このハンドシェイクにより、サーバーは証明書を使用して身元を証明し、プライベート データが交換される前に双方が暗号化キーに同意することができます。

現在の運用サイトでは、通常、リダイレクトまたは証明書の自動化のためにのみポート 80 を開いたままにしています。実際のアプリケーション トラフィックは 443 に到達する必要があり、多くの場合、ブラウザーが HTTPS の使用を忘れないように HSTS が有効になっています。

ポート 443 を開く必要がある場合

インターネット ユーザー、顧客アプリケーション、Webhook プロバイダー、CDN、モバイル アプリ、またはパートナー システムが HTTPS 経由でサービスにアクセスする必要がある場合は、ポート 443 を開きます。典型的な例には、パブリック Web サイト、REST API、GraphQL エンドポイント、OAuth コールバック、支払い Webhook、リバース プロキシ フロント ドア、コンテナーイングレス コントローラー、認証によって保護されたセルフホスト ダッシュボードなどがあります。

安全そうだからといって 443 を開かないでください。 HTTPS は転送中のトラフィックを暗号化しますが、脆弱な認証、古いソフトウェア、公開された管理ルート、または危険なデフォルトの認証情報は修正されません。 443 を、パッチ適用、ロギング、およびアクセス制御に値するパブリック エントリ ポイントとして扱います。

開封前 443

HTTPS エンドポイントが動作するには、4 つの要素を揃える必要があります。 DNS はホスト名が正しいパブリック アドレスを指す必要があります。サービスは 443 でリッスンする必要があります。ホスト ファイアウォール、クラウド セキュリティ グループ、ルーター ポート転送、ロード バランサー リスナーなどのネットワーク制御が接続を許可する必要があります。最後に、サーバーはホスト名と一致する証明書を提示する必要があります。

2 つの質問に分けてください: ポートは到達可能ですか? と HTTPS は正しく構成されていますか?ポート チェッカーは TCP パスを確認します。 curl、ブラウザ devtools、openssl s_client などのツールは、リダイレクト、証明書、TLS バージョン、HTTP 応答の検査に役立ちます。

Windows、Linux、macOS でポート 443 を開く方法

Windows Server に、IIS、Nginx、Caddy、または別の Web サーバーをインストールし、証明書をサイトにバインドし、Windows Defender ファイアウォールで受信 TCP 443 を許可します。クラウド サーバーには、クラウド セキュリティ グループまたはファイアウォール ポリシーで許可された 443 も必要です。

Linux では、Nginx、Apache、または Caddy をインストールし、443 用の仮想ホストを構成し、Let's Encrypt などのプロバイダーからの証明書を使用します。次に、ホスト ファイアウォールでポートを許可します (たとえば、Ubuntu では ufwallow 443/tcp を使用します)。コンテナーには、ホストまたはロード バランサー上で公開された 443 も必要です。

macOS では、ポート 443 は主にローカル開発環境またはラボ環境用です。 443 でリッスンするプロセスが引き続き必要であり、特権ポートには昇格されたアクセス許可が必要な場合があります。

  • サービス層: Nginx、Apache、Caddy、IIS、ロード バランサー、またはイングレス コントローラーは TCP 443 でリッスンする必要があります。
  • ホスト ファイアウォール: Windows Defender ファイアウォール、ufw、firewalld、nftables、iptables、または pf は受信 TCP 443 を許可する必要があります。
  • ネットワーク エッジ: クラウド セキュリティ グループ、ルーター NAT、CDN ルール、およびロード バランサーは、トラフィックをバックエンドにルーティングする必要があります。
  • TLS 層: 証明書チェーン、ホスト名、更新プロセス、およびプロトコル設定は、実際のブラウザーに対して有効である必要があります。

ポート 443 をテストする方法

パブリック IP アドレスまたはホスト名に対する外部ポートのチェックから始めます。結果がオープンの場合、リモート クライアントは 443 への TCP 接続を確立できます。 次に、ブラウザまたはcurl -I https://example.com を使用して、HTTP ステータス、リダイレクト、およびヘッダーを確認します。

サーバー自体で、プロセスが ss -tlnp、netstat、または PowerShell を使用してリッスンしているかどうかを確認します。 TLS の詳細については、openssl s_client -connect example.com:443 -servername example.com に証明書チェーンとハンドシェイク情報が表示されます。

ポートチェッカーによるポート 443 のテスト

よくある 443 のトラブルシューティング ケース

ポート 443 が閉じていると表示される場合は、サービスが実行中でないか、ローカルホストでのみリッスンしているか、または間違ったインターフェイスにバインドされている可能性があります。タイムアウトになる場合は、ファイアウォール、クラウド セキュリティ グループ、ルーター、ISP、または上流のプロバイダーがパケットをドロップしている可能性があります。ポートは開いているが HTTPS が失敗する場合は、証明書名、証明書チェーン、SNI 構成、リバース プロキシ アップストリーム、およびアプリケーション ログを検査します。

よくある間違いとしては、クラウド ファイアウォールを忘れてホスト ファイアウォールを開く、Docker ポート 443 をホストに公開せずにコンテナ内にマッピングする、CGNAT の背後にある住宅ネットワークからテストするなどがあります。そのような場合、トンネル、ビジネス接続、またはパブリック クラウド エンドポイントが必要になる場合があります。

ポート 443 のセキュリティ チェックリスト

TLS をシンプルかつモダンに保ちます。 TLS 1.3 と TLS 1.2 を優先し、古いプロトコルを無効にし、証明書を自動的に更新し、HTTP を HTTPS にリダイレクトし、証明書の有効期限を監視します。暗号化のみに依存しないでください。認証をプライベート ツールの前に置き、管理パスを制限し、アプリケーション スタックにパッチを適用し、失敗した認証試行をログに記録します。

高価値サービスの場合は、疑わしいトラフィックをレート制限して可観測性を向上させることができるリバース プロキシ、WAF、CDN、またはロード バランサーの背後に 443 を配置します。サービスがスタッフのみを対象としている場合は、広範囲にアクセス可能な状態にするのではなく、VPN、アイデンティティ認識プロキシ、ホワイトリスト、または mTLS を使用してください。

よくある質問

HTTPS は常にポート 443 を使用する必要がありますか?

いいえ。クライアントの URL にポートが含まれている場合、HTTPS は 8443 などの別の TCP ポートで実行できます。ポート 443 は、カスタム ポートが指定されていない場合にブラウザが想定するデフォルトです。

開いている 443 ポートは危険ですか?

パブリック Web サービスでは 443 ポートが開いているのが通常ですが、その背後にあるアプリケーションは安全である必要があります。暗号化により、転送中のトラフィックが保護されます。脆弱なパスワード、公開された管理パネル、脆弱なソフトウェア、欠落しているアクセス制御は修正されません。

ポート 443 が開いているように見えるのに、Web サイトが依然として失敗するのはなぜですか?

HTTPS 構成が壊れているときに、TCP リスナーに到達できる可能性があります。証明書、ホスト名、SNI ルーティング、リバース プロキシ構成、バックエンドの健全性、リダイレクト、およびアプリケーション ログを確認します。

ポート 80 を閉じて 443 のみを使用できますか?

はい、ユーザーとオートメーションが HTTP リダイレクトや HTTP ベースの証明書チャレンジを必要としない場合は可能です。多くのサイトでは、HTTPS にリダイレクトするためだけにポート 80 を開いたままにし、すべての実際のトラフィックにポート 443 を使用します。