Nginx 中椭圆曲线配置实战指南

在配置 HTTPS 时,ECDHE(椭圆曲线 Diffie-Hellman 密钥交换)是实现完全前向保密(PFS)的核心机制。但很多人忽视了曲线选择的重要性——不同的椭圆曲线在安全级别和性能上差异显著。本文详细介绍 Nginx 中如何选择和配置椭圆曲线。 椭圆曲线基础 椭圆曲线密码学(ECC)相比传统 RSA 具有更短的密钥和更高的安全性。以常见的曲线为例: 曲线 密钥长度 安全级别 适用场景 prime256v1 (secp256r1) 256 位 约 128 位 通用场景,推荐 X25519 256 位 约 128 位 现代推荐,更快 secp384r1 384 位 约 192 位 高安全需求 secp521r1 521 位 约 256 位 最高安全级别 注意:X25519 是蒙哥马利曲线,只用于密钥交换;secp256r1 是魏尔斯特拉斯曲线,可同时用于密钥交换和数字签名。 查看 Nginx 支持的曲线 首先确认 Nginx 编译时支持的椭圆曲线列表: 1 2 3 4 5 # 查看 Nginx 支持的曲线 nginx -V 2>&1 | grep -o "X25519\|secp256r1\|secp384r1" # 运行时查看 OpenSSL 支持的曲线 openssl ecparam -list_curves | grep -E "prime256v1|secp384r1|X25519" 输出示例:...

May 12, 2026 · 3 min · 黑豆子

Nginx HTTPS 重定向最佳实践

将 HTTP 流量重定向到 HTTPS 是网站安全的基本要求。本文聚焦 Nginx 中的最佳实践配置。 标准配置(推荐) 使用两个 server 块分离 HTTP 和 HTTPS 流量: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # HTTP server - 重定向到 HTTPS server { listen 80; server_name example.com www.example.com; return 301 https://$host$request_uri; } # HTTPS server server { listen 443 ssl http2; server_name example.com www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # HSTS - 告诉浏览器始终使用 HTTPS add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; root /var/www/html; index index....

March 26, 2026 · 2 min · 黑豆子