基础配置
最近整理的nginx配置集合,主要涉及安全问题……
server {
# 打开http2
listen 443 ssl http2;
server_name www.szyhf.org; #填写绑定证书的域名
# 打开ssl
ssl on;
ssl_certificate www.szyhf.org.crt;
ssl_certificate_key www.szyhf.org.key;
fastcgi_param HTTPS on;
# 缓存连接凭据
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:20m;
# 禁止不安全的 SSL 协议,使用安全协议
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# 禁止已经不安全的加密算法
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
# 缓解 BEAST 攻击
ssl_prefer_server_ciphers on;
# 赫尔曼密钥
# shell命令:openssl dhparam -out dhparam.pem 2048 // 在 ssh 运行, openssl 生成 2048 位的密钥而不是当作参数写入 nginx.conf 文件。
ssl_dhparam www.szyhf.org.dhparam.pem;
# OCSP缝合
ssl_stapling on;
ssl_stapling_verify on;
# ssl_trusted_certificate /etc/nginx/cert/trustchain.crt;
resolver 8.8.8.8 114.114.114.114 valid=300s;
location / {
# 转发到http时要带上这些配置
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
add_header Front-End-Https on;
proxy_redirect off;
# 不转发http时只要这一行即可
proxy_pass http://blog_proxy;
}
}
# 80 端口跳转到 443 端口
server {
listen 80;
server_name _;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
return 301 https://$host$request_uri;
}
关于OCSP缝合
关于迪菲-赫尔曼密钥交换
关于BEAST攻击
【译】SSL/TLS真的被BEAST攻击攻破了吗?真实情况是怎样的?我应该做什么?