要在 Qualys SSL Labs 測試中獲得 A+ 評分,Nginx 需啟用 HTTP/2、完美前向保密(PFS)、HSTS、OCSP Stapling 等現代安全特性。以下提供一份經實測可達 A+ 的完整配置範本(以 nginx-tls.conf 為例)。
# nginx-tls.conf
# Author: James Lau
# Date: 2024-01-15
# Desc: Nginx SSL/TLS configuration for "A+" Qualys SSL Labs rating
# Enables HTTP/2, PFS, HSTS and OCSP stapling.
# HTTP 永久導向 HTTPS
server {
listen 80;
listen [::]:80;
server_name domain.tld www.domain.tld;
return 301 https://$host$request_uri;
}
# HTTPS 主站配置
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name domain.tld www.domain.tld;
# 憑證與私鑰
ssl_certificate /etc/ssl/domain.crt;
ssl_certificate_key /etc/ssl/domain.key;
# DH 參數(建議 2048+ bits,使用 openssl dhparam -out dhparam.pem 2048 生成)
ssl_dhparam /path/to/dhparam.pem;
# 協議與加密套件
ssl_protocols TLSv1.2 TLSv1.3; # 僅啟用安全協議
ssl_prefer_server_ciphers on;
ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;
# Session 快取與票據
ssl_session_timeout 1d;
ssl_session_cache shared:TLS:10m;
ssl_session_tickets off; # 關閉 Session Tickets 強化 PFS
# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
resolver 1.1.1.1 8.8.8.8 valid=300s; # 可信 DNS 解析器
resolver_timeout 5s;
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
# HSTS:強制瀏覽器 365 天內僅用 HTTPS
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload' always;
# 安全性標頭(可選)
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header Referrer-Policy strict-origin-when-cross-origin;
# ... 你的 location / 等業務配置 ...
}
| 指令 | 作用 |
|---|---|
ssl_protocols TLSv1.2 TLSv1.3 | 移除 TLS 1.0/1.1,符合 PCI-DSS 與現代瀏覽器需求 |
ssl_dhparam | 自定義 DH 參數避免 Logjam 攻擊,建議 ≥2048 bits |
ssl_ciphers ... | 優先 ECDHE 套件實現 PFS,禁用弱加密(RC4、3DES、MD5 等) |
ssl_session_tickets off | 關閉 Session Tickets,配合 PFS 防止長期金鑰洩露導致歷史流量解密 |
ssl_stapling on | 啟用 OCSP Stapling,減少客戶端驗證延遲並提升隱私 |
Strict-Transport-Security | HSTS 預載入,防止 SSL Strip 降級攻擊 |
nginx -t 測試語法。systemctl reload nginx 重載配置。ssl_certificate 包含完整鏈(葉子證書 → 中繼 CA → 根 CA)。套用此配置並定期更新憑證、OpenSSL 版本,即可長期維持 A+ 安全評級。