Nginx でアップグレードの安全でないリクエストを設定する方法

セキュリティが最も重要であるデジタル時代において、このガイドでは、Upgrade Insecure Requests で Upgrade Insecure Requests を構成する方法を説明します。Web 開発におけるこの重要なセキュリティ機能は、ブラウザに HTTP リクエストを HTTPS に自動的にアップグレードするように指示します。これにより、クライアントとサーバー間のすべての通信が暗号化され、Web サイトの全体的なセキュリティが向上します。NGINX でこの機能を構成すると、ユーザーの安全なブラウジング エクスペリエンスが維持され、SEO ランキングの向上にもつながります。

このガイドでは、NGINX で安全でないアップグレード要求を構成する手順について説明します。これにより、すべての HTTP トラフィックが HTTPS にリダイレクトされ、Web サーバーのセキュリティが強化されます。

Nginx のアップグレードの安全でないリクエストをグローバルに追加する

Nginx 設定ファイルにアクセスする

Nginxの設定ファイルにアクセスしてプロセスを開始します。通常、次の場所にあります。 /etc/nginx/nginx.conf次のコマンドを使用してファイルを開きます。

sudo nano /etc/nginx/nginx.conf

このファイルを編集するには管理者権限が必要であることに注意してください。この手順により、変更が安全かつ承認されたものであることが保証されます。

アップグレードの安全でないリクエスト ヘッダーを挿入

nginx.confファイルで、 http ブロック。ここでは、ブラウザにすべての HTTP リクエストを HTTPS にアップグレードするように指示する特定の行を追加する必要があります。この機能強化は、Web サイトのデータ転送を保護するために重要です。次の行を挿入します。

add_header Content-Security-Policy "upgrade-insecure-requests";

設定例:

http {
    ...
    add_header Content-Security-Policy "upgrade-insecure-requests";
    ...
}

テストアップグレードの安全でないリクエストがアクティブです

このディレクティブは、すべてのリクエストが安全な HTTPS 接続に自動的にアップグレードされ、ユーザー データが保護され、信頼性が向上することを保証することで、Web サイトのセキュリティにおいて重要な役割を果たします。

アップグレードの安全でないリクエストの有効化を確認する

変更を適用したら、Nginx を再起動して変更を適用します。次のコマンドを使用します。

sudo systemctl restart nginx

ヘッダーの有効化を確認するには、次のようなツールを使用してテストを実行します。 curlこのツールは、Web サイトの応答ヘッダーを検査するのに役立ちます。次のコマンドを実行します。

curl -I http://yourwebsite.com

探してください Content-Security-Policy: upgrade-insecure-requests 応答に行があります。この行が存在すると、安全でない要求へのアップグレードが正常にアクティブになっていることが確認されます。

予想される端末出力:

HTTP/1.1 200 OK
Server: nginx/1.18.0 (Ubuntu)
Date: Wed, 20 Dec 2023 12:00:00 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Content-Security-Policy: upgrade-insecure-requests
...

Nginx サーバー ブロックにアップグレードの安全でないリクエストを追加する

ステップ1: Nginxサーバーブロック構成にアクセスする

まず、ドメインの特定のサーバー ブロックにアクセスします。これは通常、/etc/nginx/sites-available/yourdomain にあります。このファイルを編集するには、次のコマンドを使用して、必要な管理者権限があることを確認します。

sudo nano /etc/nginx/sites-available/yourdomain

この手順は、Nginx セットアップに対してドメイン固有の構成変更を直接行うために重要です。

Nginx リクエスト ヘッダーでアップグレードの安全性を設定する

Nginxサーバーブロック構成では、次のものを追加してセキュリティを強化することに重点を置いています。 upgrade-insecure-requests ディレクティブ。これは、 location / ブロックします。このディレクティブは、すべての HTTP リクエストをより安全な HTTPS に切り替えるようにブラウザに指示し、Web サイトのデータのセキュリティを強化します。

次の構成を追加します。

server {
    ...
    location / {
        add_header Content-Security-Policy "upgrade-insecure-requests";
    }
    ...
}

この設定は、特に同じ Nginx サーバーで複数のドメインまたはサブドメインがホストされている場合に、個々のサーバー ブロックを保護するのに役立ちます。

アップグレードの安全でないリクエストの機能を確認する

変更を保存したら、新しい設定が有効になるように Nginx を再起動します。

sudo systemctl restart nginx

ヘッダーがアクティブであることを確認するには、次のようなツールを使用します。 curl HTTP 応答ヘッダーを検査するには:

curl -I http://yourdomain.com

前のセクションと同様に、応答で Content-Security-Policy: upgrade-insecure-requests を探します。これにより、ヘッダーが正しく実装され、特定のサーバー ブロックに対してアクティブであることが確認されます。

Nginx アップグレードのセキュア リクエスト: 高度な例

リクエスト方法に基づく条件付きアップグレード

この設定は、HTTP リクエスト メソッドに基づいて動作を区別する必要があるシナリオに最適です。データ送信の問題につながる可能性のある機密性の高い POST リクエストには、upgrade-insecure-requests ヘッダーを適用しないように選択的に適用します。

map $request_method $upgrade_insecure {
    POST   0;
    default 1;
}

server {
    ...
    location / {
        if ($upgrade_insecure) {
            add_header Content-Security-Policy "upgrade-insecure-requests";
        }
        ...
    }
}

ユーザーエージェント固有のアップグレード

ユーザーのブラウザに基づいてアップグレード プロセスを調整することは、互換性を保つために不可欠です。この構成では、Chrome や Firefox などの特定のユーザー エージェントに対してのみアップグレードがアクティブ化されるため、よりターゲットを絞ったアプローチが実現します。

map $http_user_agent $upgrade_condition {
    ~*chrome 1;
    ~*firefox 1;
    default 0;
}

server {
    ...
    location / {
        if ($upgrade_condition) {
            add_header Content-Security-Policy "upgrade-insecure-requests";
        }
        ...
    }
}

パス固有のアップグレード アプリケーション

サイトの特定の領域にセキュリティアップグレードを適用することは、特に特定のセクションのみが機密情報を扱う環境では非常に重要です。この設定により、指定されたパスのアップグレードが可能になります。 /secure-area/.

server {
    ...
    location /secure-area/ {
        add_header Content-Security-Policy "upgrade-insecure-requests";
        ...
    }
    location / {
        ...
    }
}

アップグレードと追加のセキュリティ ヘッダーの統合

upgrade-insecure-requests ディレクティブを他のセキュリティ ヘッダーと組み合わせると、サーバーの全体的なセキュリティが強化されます。この包括的なアプローチは、堅牢なセキュリティ対策を必要とする環境に最適です。

server {
    ...
    location / {
        add_header Content-Security-Policy "upgrade-insecure-requests; default-src https:";
        add_header X-Content-Type-Options nosniff;
        add_header X-Frame-Options SAMEORIGIN;
        ...
    }
}

カスタムログを使用したアップグレードの実装

この構成は、監視とログ記録が不可欠な環境でのアップグレード プロセスを追跡するのに役立ちます。HTTP から HTTPS にアップグレードされた要求をログに記録し、セキュリティ監査と分析に役立ちます。

map $scheme $log_upgrade {
    http 1;
    default 0;
}

server {
    ...
    location / {
        if ($log_upgrade) {
            access_log /var/log/nginx/upgrade.log;
            add_header Content-Security-Policy "upgrade-insecure-requests";
        }
        ...
    }
}

これらの高度な構成により、HTTP から HTTPS へのアップグレードの実行方法とタイミングを細かく制御できるため、特定のニーズに応え、Nginx サーバーのセキュリティと機能が向上します。

結論

NGINX で「安全でないリクエストのアップグレード」を設定すると、すべての HTTP トラフィックが自動的に HTTPS にアップグレードされ、Web サイトのセキュリティが強化されます。この設定は、ユーザー データが保護されるだけでなく、サイトの SEO の向上にも役立ちます。最適なセキュリティとパフォーマンスを維持するために、NGINX 設定を定期的に確認して更新してください。Web トラフィックが安全で暗号化されているという安心感を味わってください。

Joshua James

コメントを残す