HTTPS性能优化概述
HTTPS相比HTTP增加了TLS握手开销。虽然TLS 1.3已大幅降低延迟,但通过合理配置HSTS、OCSP Stapling、Session Resumption等机制,还可以进一步优化性能。
HSTS(HTTP Strict Transport Security)
工作原理
服务器通过Strict-Transport-Security响应头告知浏览器:在指定时间内只使用HTTPS访问本站。浏览器在首次收到此头后,所有后续HTTP请求会在客户端自动升级为HTTPS(307内部重定向),避免了HTTP→HTTPS 301重定向的额外往返。
配置建议
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload。max-age设为1年,includeSubDomains覆盖所有子域名,preload提交到浏览器HSTS预加载列表(内置在浏览器中,首次访问也无需HTTP重定向)。
注意事项
启用HSTS前确保所有子域名都支持HTTPS,否则会导致子域名不可访问。建议先设置短max-age(如300秒)测试,确认无误后再延长。Preload提交后撤回非常困难,慎重操作。
OCSP Stapling
问题背景
浏览器需要验证证书是否被吊销。传统OCSP需要客户端向CA的OCSP服务器发送查询请求,增加100-300ms延迟,且CA服务器可能不稳定。
Stapling方案
服务器定期向CA查询OCSP响应并缓存。TLS握手时将OCSP响应附在证书后一起发送给客户端。客户端无需额外查询,减少一次网络往返。
Nginx配置
ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /path/to/chain.pem; resolver 8.8.8.8 valid=300s;。验证:openssl s_client -connect domain:443 -status 查看OCSP Response Status。
Session Resumption
避免每次连接都做完整TLS握手。两种方式:Session ID(服务端存储会话状态)和Session Ticket(客户端存储加密的会话票据)。TLS 1.3的0-RTT进一步减少恢复连接的延迟。