検索
ホームページ運用・保守Nginxnginx が HSTS を構成する方法

nginx が HSTS を構成する方法

May 14, 2023 pm 04:37 PM
nginxhsts

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 までご連絡ください。
NGINX:最新のWebアプリケーション用の汎用ツールNGINX:最新のWebアプリケーション用の汎用ツールApr 11, 2025 am 12:03 AM

nginxisentialformodernwebapplicationsdueToitsRolesasareverseproxy、loadbalancer、andwebserver、weberporformanceandscalability.1)itactsasaReverseproxy、拡張、およびパフォーマンスを強化し、パフォーマンスを強化し、積極的に積極的なものを増やします

nginx SSL/TLS構成:HTTPSでWebサイトを保護しますnginx SSL/TLS構成:HTTPSでWebサイトを保護しますApr 10, 2025 am 09:38 AM

NGINXを通じてWebサイトのセキュリティを確保するには、次の手順が必要です。1。基本的な構成を作成し、SSL証明書と秘密鍵を指定します。 2。構成を最適化し、HTTP/2を有効にし、OCSPSTAPLING。 3.証明書パスや暗号化スイートの問題などの一般的なエラーをデバッグします。 4。let'sencryptの使用やセッションの多重化など、アプリケーションのパフォーマンス最適化の提案。

Nginxインタビューの質問:DevOps/System管理インタビューをAceNginxインタビューの質問:DevOps/System管理インタビューをAceApr 09, 2025 am 12:14 AM

Nginxは、高性能のHTTPおよびリバースプロキシサーバーであり、高い並行接続の取り扱いに優れています。 1)基本的な構成:ポートを聞いて静的ファイルサービスを提供します。 2)高度な構成:逆プロキシとロードバランシングを実装します。 3)デバッグスキル:エラーログを確認し、構成ファイルをテストします。 4)パフォーマンスの最適化:GZIP圧縮を有効にし、キャッシュポリシーを調整します。

nginxキャッシュテクニック:ウェブサイトのパフォーマンスの向上nginxキャッシュテクニック:ウェブサイトのパフォーマンスの向上Apr 08, 2025 am 12:18 AM

Nginxキャッシュは、次の手順を通じてWebサイトのパフォーマンスを大幅に改善できます。1)キャッシュ領域を定義し、キャッシュパスを設定します。 2)キャッシュ有効期間を構成します。 3)異なるコンテンツに従って異なるキャッシュポリシーを設定します。 4)キャッシュストレージと負荷分散を最適化します。 5)キャッシュ効果を監視およびデバッグします。これらの方法により、Nginxキャッシュはバックエンドサーバーの圧力を軽減し、応答速度とユーザーエクスペリエンスを向上させることができます。

Dockerを使用したNginx:コンテナ化されたアプリケーションの展開とスケーリングDockerを使用したNginx:コンテナ化されたアプリケーションの展開とスケーリングApr 07, 2025 am 12:08 AM

DockerComposeを使用すると、Nginxの展開と管理が簡素化され、DockerswarmまたはKubernetesをスケーリングすることは一般的な慣行です。 1)DockerComposeを使用してNginxコンテナを定義および実行する、2)DockerswarmまたはKubernetesを介してクラスター管理と自動スケーリングを実装します。

Advanced Nginx構成:マスタリングサーバーブロックとリバースプロキシAdvanced Nginx構成:マスタリングサーバーブロックとリバースプロキシApr 06, 2025 am 12:05 AM

nginxの高度な構成は、サーバーブロックとリバースプロキシを介して実装できます。1。サーバーブロックにより、複数のWebサイトを1つの場合に実行することができます。各ブロックは個別に構成されます。 2.逆プロキシは、リクエストをバックエンドサーバーに転送して、負荷分散とキャッシュアクセラレーションを実現します。

nginxパフォーマンスチューニング:速度と低レイテンシの最適化nginxパフォーマンスチューニング:速度と低レイテンシの最適化Apr 05, 2025 am 12:08 AM

NGINXのパフォーマンスチューニングは、ワーカープロセスの数、接続プールサイズの数、GZIP圧縮とHTTP/2プロトコルの有効化、およびキャッシュとロードバランスを使用することで実現できます。 1.ワーカープロセスの数と接続プールサイズを調整します:worker_processesauto;イベント{worker_connections1024;}。 2。GZIP圧縮とhttp/2プロトコルを有効にします:http {gzipon; server {risten43sslhttp2;}}。 3。キャッシュ最適化:http {proxy_cache_path/path/to/cachelevels = 1:2k

Nginxセキュリティ硬化:Webサーバーを攻撃から保護しますNginxセキュリティ硬化:Webサーバーを攻撃から保護しますApr 04, 2025 am 12:06 AM

NGINXセキュリティの強化は、次の手順を通じて達成できます。1)すべてのトラフィックがHTTPSを介して送信されることを確認する、2)HTTPヘッダーを構成してコミュニケーションセキュリティを強化するように設定します。これらの測定は、Nginxサーバーのセキュリティを効果的に改善できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 中国語版

SublimeText3 中国語版

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

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。