nginx 第3話: nginx のセキュリティ設定
はじめに
前回はnginx の設定ファイルとディレクティブについて学びました。今回はnginx のセキュリティ設定について説明します。
nginx を構築する際には、セキュリティの重要性を認識し、適切な設定を行うことが必須です。これは、サーバー上のデータやユーザーの情報を保護するためです。
SSL/TLS 証明書の設定
SSL/TLS 証明書は、HTTPS プロトコルを使用してサーバーとクライアント間で暗号化された通信を行うために必要なものです。nginx では、証明書の設定が容易に行えます。
例えば、以下のように server ブロック内に ssl_certificate と ssl_certificate_key ディレクティブを追加することで、SSL/TLS 証明書の設定を行うことができます。
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/ssl/certificate.crt;
ssl_certificate_key /path/to/ssl/private/key.key;
location / {
index index.html;
}
}
セキュリティ設定の例
以下は、nginx のセキュリティ設定の例です。
http {
server {
listen 80;
server_name example.com;
# SSL/TLS 証明書の設定
ssl_certificate /path/to/ssl/certificate.crt;
ssl_certificate_key /path/to/ssl/private/key.key;
# セキュリティ設定
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1h;
# コンテンツセキュリティポリシーの設定
add_header Content-Security-Policy "default-src 'self'; script-src 'self' https://example.com; object-src 'none';";
}
}
この設定では、SSL/TLS 証明書の設定と、セキュリティ設定(プロトコル、暗号化アルゴリズム、セッションキャッシュなど)が行われています。
コンテンツセキュリティポリシーの設定
コンテンツセキュリティポリシー (CSP) は、Web アプリケーションが許可したコンテンツのみをロードするように指示するものです。nginx では、CSP の設定を行うことができます。
例えば、以下のように add_header ディレクティブを使用して、CSP を設定することができます。
http {
server {
listen 80;
server_name example.com;
# CSP の設定
add_header Content-Security-Policy "default-src 'self'; script-src 'self' https://example.com; object-src 'none';";
}
}
この設定では、CSP が指定された内容に従ってロードされるように指示されています。
以上がnginx のセキュリティ設定の例です。適切なセキュリティ設定を行うことで、サーバー上のデータやユーザーの情報を保護することができます。