ホームページ 運用・保守 Nginx nginx が HSTS を構成する方法

nginx が HSTS を構成する方法

May 14, 2023 pm 04:37 PM
nginx hsts

Netcraft は最近、SSL/TLS Web サイトのテストに関する調査結果を発表し、HTTP Strict Transport Security HSTS を正しく実装しているユーザーは 5% のみであると指摘しました。

HSTS とは

#HTTPS (SSL および TLS) は、ユーザーと Web サイト間の通信中のセキュリティを確保し、攻撃者による傍受、変更、なりすましを困難にします。ユーザーがドメイン名または http:// リンクを手動で入力すると、Web サイトへの最初のリクエストは暗号化されず、プレーン http を使用します。最も安全な Web サイトは、ユーザーを https 接続に誘導するリダイレクトを即座に送り返しますが、中間者攻撃者は最初の http リクエストを傍受し、それによってユーザーのその後の応答を制御できる可能性があります。

当然のことながら、HSTS はこの潜在的なセキュリティ問題を解決するために登場しました。ユーザーがドメイン名または http 接続を入力した場合でも、ブラウザは厳密に https 接続にアップグレードします。

nginx が HSTS を構成する方法

HSTS の仕組み

HSTS ポリシーは、安全な HTTPS サイトから送信される HTTP 応答ヘッダーで公開されます。

Strict-Transport-Security: max-age=31536000
ブラウザが HTTPS サイトからこのヘッダーを確認すると、ドメイン名には HTTPS (SSL または TLS) 経由でのみアクセスできることがわかります。そして、この情報を 31536000 (1 年分) にキャッシュします。

オプションのパラメーター includeSubDomains は、ポリシーが現在のドメインのすべてのサブドメインに適用されることをブラウザーに伝えます。

Strict-Transport-Security: max-age=31536000; includeSubDomains

nginx 設定 HSTS

nginx 設定ファイルに HSTS 応答ヘッダーを設定します。

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
always パラメーターにより、内部生成されたエラー応答を含むすべての応答でこのヘッダーが設定されるようになります。 1.7.5 より前の nginx バージョンは always パラメーターをサポートしておらず、内部生成されたエラー応答ではこのヘッダー情報が設定されません。

add_header ディレクティブの継承ルール:

nginx 構成ブロックは、add_header ディレクティブが配置されているカプセル化ブロックを継承するため、add_header ディレクティブをトップレベルのサーバー ブロックに配置するだけで済みます。重要な例外があり、ブロックに add_header ディレクティブ自体が含まれている場合、ブロックはそれを囲んでいるブロックからヘッダーを継承しないため、すべての add_header ディレクティブを再定義する必要があります。

server {
    listen 443 ssl;
 
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
 
    # This 'location' block inherits the STS header
    location / {
        root /usr/share/nginx/html;
    }
 
    # Because this 'location' block contains another 'add_header' directive,
    # we must redeclare the STS header
    location /servlet {
        add_header X-Served-By "My Servlet Handler";
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
        proxy_pass http://localhost:8080;
    }
}
テスト HTTP Strict Transport Security:

ユーザーが HSTS ポリシーを提案すると、そのキャッシュ情報の期間は max-age で指定されます。この間、ブラウザは暗号化されていない HTTP を介した Web サービスへのアクセスを拒否し、証明書エラーの例外を許可することを拒否します (Web サイトが以前に有効で信頼できる証明書を送信した場合)。 includeSubDomanis パラメーターが指定されている場合、これらの制限は現在のドメイン内のすべてのサブドメインにも適用されます。

HSTS をテストするときは、max-age 時間を短く設定してください。

各 HTTPS 応答に STS ヘッダーが必要かどうか:

私たちの目標は、ユーザーが HTTPS セッションを開始したときに、できるだけ早く HSTS ポリシーを提示することです。セッション中に HSTS ポリシーを受信した場合でも、HTTP ハイジャック攻撃に対して脆弱です。ブラウザーは STS ヘッダーを 1 回確認するだけでよいため、すべてのロケーション ブロックとすべての応答に STS ヘッダーを追加する必要は厳密にはありません。ただし、ホームページまたはログイン ページに追加するだけでは不十分な場合があります。キャッシュされた応答に追加するだけでは、クライアントに表示されない可能性があります。動的コンテンツに特に注意を払い、適切な範囲で URL をカバーするようにしてください。

HTTP と HTTPS の同時実行

Web サイトを HTTP と HTTPS で同時に実行する必要がある場合があります

server {
    listen  80;
    listen  443 ssl;
    ...
}
HTTP リクエストを同時に実行する必要がある場合があります。 https

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
 
    # Discourage deep links by using a permanent redirect to home page of HTTPS site
    return 301 https://$host;
 
    # Alternatively, redirect all HTTP links to the matching HTTPS page
    # return 301 https://$host$request_uri;
}
 
server {
    listen 443 ssl;
    server_name www.ttlsa.com;
 
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
}

Enhanced HSTS

STS ヘッダーを確認してから宣言された最大有効期間まで、クライアントを HTTP インターセプトから保護します。ただし、HSTS は HTTP セッション ハイジャックに対する完璧なソリューションではありません。 HSTS で保護された Web サイトに HTTP 経由でアクセスする場合、ユーザーは引き続き脆弱です:

  1. これまでその Web サイトにアクセスしたことがない

  2. 最近再訪問したオペレーティング システムをインストールしましたシステム

  3. 最近ブラウザを再インストールしました

  4. 新しいブラウザに切り替えました

  5. 新しいブラウザに切り替えました携帯電話などのデバイス

  6. ブラウザのキャッシュを削除します

  7. 最近サイトにアクセスしていないため、最大有効期限が切れています

この問題を解決するために、Google は「HSTS プリロード リスト」サイトのドメイン名とサブドメイン名を維持することを主張し、https://hstspreload.appspot.com/ そのドメイン名を通じて提出しました。このドメイン名のリストは配布され、主要な Web ブラウザにハードコーディングされます。このリストのドメイン名にアクセスするクライアントは、HTTPS を積極的に使用し、HTTP を使用したサイトへのアクセスを拒否します。

STS ヘッダーが設定されるか、ドメインが HSTS プリロード リストに送信されると、それを削除することはできません。これは、ドメイン名を HTTPS 経由で利用できるようにするための一方的な決定です。

以上がnginx が HSTS を構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPコードを作成した後にPHPコードを実行する方法は? PHPコードを実行するいくつかの一般的な方法 PHPコードを作成した後にPHPコードを実行する方法は? PHPコードを実行するいくつかの一般的な方法 May 23, 2025 pm 08:33 PM

PHPコードはさまざまな方法で実行できます。1。コマンドラインを使用して「PHPファイル名」を直接入力してスクリプトを実行します。 2.ファイルをDocument Root Directoryに入れ、Webサーバーを介してブラウザを介してアクセスします。 3. IDEで実行し、組み込みのデバッグツールを使用します。 4.テストには、オンラインPHPサンドボックスまたはコード実行プラットフォームを使用します。

nginxをインストールした後、構成ファイルパスと初期設定 nginxをインストールした後、構成ファイルパスと初期設定 May 16, 2025 pm 10:54 PM

Nginxの構成ファイルパスと初期設定を理解することは、Webサーバーの最適化と管理における最初のステップであるため、非常に重要です。 1)構成ファイルパスは通常/etc/nginx/nginx.confです。構文は、Nginx-Tコマンドを使用して見つけるとテストできます。 2)初期設定には、グローバル設定(ユーザー、Worker_Processesなど)およびHTTP設定(include、log_formatなど)が含まれます。これらの設定により、要件に応じてカスタマイズと拡張機能が可能になります。構成が誤っていると、パフォーマンスの問題やセキュリティの脆弱性が生じる可能性があります。

Linuxのユーザーリソースを制限する方法は? ulimitを構成する方法は? Linuxのユーザーリソースを制限する方法は? ulimitを構成する方法は? May 29, 2025 pm 11:09 PM

Linuxシステムは、リソースの過度の使用を防ぐために、ULIMITコマンドを介してユーザーリソースを制限します。 1.ulimitは、ファイル記述子(-n)、メモリサイズ(-v)、スレッドカウント(-u)などの数を制限できるビルトインシェルコマンドであり、ソフト制限(現在の有効値)とハードリミット(最大上限)に分割されます。 2。Ulimit-N2048などの一時的な変更には、Ulimitコマンドを直接使用しますが、現在のセッションでのみ有効です。 3.永続的な効果を得るには、/etc/security/limits.confを変更し、PAM構成ファイルを変更し、SessionRequiredPam_limits.soを追加する必要があります。 4. SystemDサービスは、ユニットファイルにLIMを設定する必要があります

Debian Nginx構成スキルは何ですか? Debian Nginx構成スキルは何ですか? May 29, 2025 pm 11:06 PM

DebianシステムでNginxを構成する場合、以下はいくつかの実用的なヒントです。構成ファイルの基本構造グローバル設定:NGINXサービス全体に影響を与える行動パラメーターを定義します。イベント処理パーツ:Nginxがネットワーク接続をどのように扱うかを決定することは、パフォーマンスを改善するための重要な構成です。 HTTPサービスパーツ:HTTPサービスに関連する多数の設定が含まれており、複数のサーバーとロケーションブロックを埋め込むことができます。コア構成オプションworker_connections:各ワーカースレッドが処理できる接続の最大数を定義します。通常は1024に設定されています。Multi_accept:マルチ接続受信モードをアクティブにし、同時処理の能力を高めます。 s

Nginxの目的:Webコンテンツなどの提供 Nginxの目的:Webコンテンツなどの提供 May 08, 2025 am 12:07 AM

NginxServesWebContentAndActSasaReverseProxy、loadbalancer、andmore.1)itefficientlyServestaticContentlikehtmlandimages.2)ItfunctionsasareSareProxyandloadbalancer、distributing trafficacrosservers.3)

nginxトラブルシューティング:一般的なエラーの診断と解決 nginxトラブルシューティング:一般的なエラーの診断と解決 May 05, 2025 am 12:09 AM

nginxの一般的なエラーの診断とソリューションには、次のものが含まれます。1。ログファイルの表示、2。構成ファイルの調整、3。パフォーマンスを最適化します。ログを分析し、タイムアウト設定を調整し、キャッシュとロードバランスの最適化により、404、502、504などのエラーを効果的に解決して、ウェブサイトの安定性とパフォーマンスを向上させることができます。

Nginxサービスの自己開始を構成するための特定の手順 Nginxサービスの自己開始を構成するための特定の手順 May 16, 2025 pm 10:39 PM

NGINX構成を開始する手順は次のとおりです。1。SystemDサービスファイルを作成します:Sudonano/etc/systemd/system/nginx.Service、および関連する構成を追加します。 2。SystemD構成をリロード:sudosystemctldaemon-reload。 3. nginxを自動的に起動できるようにします:sudosystemctlenablenginx。これらの手順を通じて、Nginxはシステムの開始時に自動的に実行され、Webサイトまたはアプリケーションの信頼性とユーザーエクスペリエンスが保証されます。

Debian apache2のSEO最適化手法は何ですか? Debian apache2のSEO最適化手法は何ですか? May 28, 2025 pm 05:03 PM

DebianApache2のSEO最適化スキルは、複数のレベルをカバーしています。いくつかの重要な方法を次に示します。キーワード調査:ページのコアと補助キーワードをマイニングするためのツール(キーワードマジックツールなど)を使用します。高品質のコンテンツ作成:貴重でオリジナルのコンテンツを生成します。コンテンツは、スムーズな言語と明確な形式を確保するために、詳細な研究を実施する必要があります。コンテンツのレイアウトと構造の最適化:タイトルと字幕を使用して、読書をガイドします。簡潔で明確な段落と文章を書いてください。リストを使用して重要な情報を表示します。写真やビデオなどのマルチメディアを組み合わせて、表現を強化します。空白の設計により、テキストの読みやすさが向上します。技術レベルのSEO改善:robots.txtファイル:検索エンジンクローラーのアクセス権を指定します。 Accelerate Webページの読み込み:キャッシュメカニズムとApache構成の助けを借りて最適化

See all articles