2026年10月10日
2026年10月10日
NginxでSSLの設定を強化する方法(A+評価を取得)
はじめに
ウェブサイトの安全性を高めるためには、SSL(Secure Sockets Layer)による暗号化通信が不可欠です。特に最近ではHTTPSの導入は必須とされ、多くのウェブサイトで利用されています。しかしながら、単なるHTTPS設定だけでなく、その評価も非常に重要となります。この記事では、Nginxを用いてウェブサイトのSSL設定を強化し、最高レベルのA+評価を得るためのステップについて詳しく紹介します。
症状・背景
- ウェブサイトのセキュリティを向上させたい
- SSL評価ツールで低い評価を受けた
- ユーザーからの信頼性を高めたい
- HTTPSによる暗号化通信を完全に導入したい
- セキュリティ関連の脆弱性を解消したい
手順・設定方法
ステップ1: SSL証明書と鍵ファイルを準備する
# SSL証明書ファイルのパスを指定します
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example_com.crt;
ssl_certificate_key /etc/nginx/ssl/example_com.key;
# SSL設定を強化するために使用する他のオプションもここで追加します
}
ステップ2: 強力な暗号スイートを使用する
# 強力な暗号スイートを指定します。これはセキュリティ上の必須項目です。
server {
listen 443 ssl;
server_name example.com;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
}
ステップ3: HTTP Strict Transport Security (HSTS) を有効にする
# HSTSを設定することで、ブラウザが指定ドメインの全てのリクエストをSSL経由で行うように強制します。
server {
listen 443 ssl;
server_name example.com;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
}
ステップ4: HTTP Public Key Pinning (HPKP) を有効にする
# HPKPは、サイトが利用する公開鍵をブラウザに通知し、悪意のあるCAによる攻撃から保護します。
server {
listen 443 ssl;
server_name example.com;
add_header Public-Key-Pins "pin-sha256=\"yourPublicKeyPinningValue\"; max-age=1068192000";
}
ステップ5: OCSP Stapling を有効にする
# OCSP Staplingにより、SSL/TLS接続時の証明書の検証プロセスが高速化され、パフォーマンスが向上します。
server {
listen 443 ssl;
server_name example.com;
ssl_stapling on;
ssl_stapling_verify on;
}
ステップ6: ヘッダーの緩和策を設定する
# X-Content-Type-Options, X-XSS-Protection, X-Frame-Optionsなどのヘッダーは、特定の攻撃からウェブサイトを保護します。
server {
listen 443 ssl;
server_name example.com;
add_header X-Content-Type-Options nosniff always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Frame-Options DENY always;
}
注意事項
- SSL証明書と鍵ファイルのパスは、実際に存在するものを指定してください。
- 強力な暗号スイートを設定することでセキュリティが向上しますが、一部の古いブラウザやデバイスでは接続不能になる可能性があります。
- HSTSとHPKPの設定を行う際には、ドメイン全体に対する影響を十分に考慮してください。
- OCSP Staplingはセキュリティを強化しつつパフォーマンスも向上させるため推奨しますが、CAサーバーとの通信に問題がある場合や時間帯によっては性能低下を引き起こす可能性があります。
まとめ
1. SSL証明書の準備: 信頼性のあるCAから取得した有効なSSL証明書と鍵ファイルを使用する。
2. 暗号スイートの選択: 安全で強力な暗号スイートを選び、セキュリティを確保します。
3. HSTSとHPKPの設定: ユーザーからの攻撃からサイトを保護し、ブラウザがHTTPS接続のみを使用するように強制します。
4. OCSP Stapling: SSL/TLS証明書の検証プロセスを高速化し、パフォーマンスを向上させます。
5. ヘッダー設定: 各種HTTPヘッダーを適切に設定することで、特定の攻撃からウェブサイトを守ります。
関連記事: