linux

nginx ssl安全设置有哪些

小樊
33
2025-12-02 23:13:57
栏目: 云计算

Nginx SSL/TLS 安全设置清单

一 基础协议与套件

二 握手与会话优化

三 证书与信任链

四 强化与运维实践

五 最小可用示例

# HTTP → HTTPS 与 HSTS
server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    # 证书与链
    ssl_certificate     /etc/nginx/ssl/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/privkey.pem;

    # 协议与套件
    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:
                       ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
    ssl_prefer_server_ciphers on;

    # 会话复用
    ssl_session_cache   shared:SSL:10m;
    ssl_session_timeout 5m;

    # OCSP Stapling
    ssl_stapling        on;
    ssl_stapling_verify on;
    resolver           8.8.8.8 1.1.1.1 valid=300s;
    ssl_trusted_certificate /etc/nginx/ssl/chain.pem;  # 中间证书或根证书链

    # 安全头
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;

    # 其他
    server_tokens off;
}

说明:按需调整 resolver 地址与 ssl_trusted_certificate 路径;若启用 DH,额外配置 ssl_dhparam /path/to/dhparam.pem。

0
看了该问题的人还看了