直接启用ssl_session_tickets并统一48字节密钥可实现无状态HTTPS加速;需在可信机生成密钥、全节点字节级一致分发、server块中显式配置on与key路径、禁用ssl_session_cache、限定TLSv1.2+协议,并通过Chrome DevTools验证票据生效。
直接启用 ssl_session_tickets,让客户端自己携带加密票据,服务端无需共享缓存就能解密复用——这是实现无状态 HTTPS 加速最轻量、最可靠的方式。
密钥是整个机制生效的核心。Nginx 或 Apache 若不显式指定密钥,会每次启动自动生成临时密钥,导致旧票据无法解密,复用率归零。
openssl rand 48 > /etc/nginx/ticket.key(Nginx)或 openssl rand -out /etc/ssl/private/ticket.key 48(Apache)ls -l /etc/nginx/ticket.key 输出必须为 48
chmod 400 /etc/nginx/ticket.key(Nginx)或 chmod 600 /etc/ssl/private/ticket.key(Apache)chown nginx:nginx 或 chown www-data:www-data
不能只写 on,必须同时绑定密钥路径,否则等于没开。
server{} 块内,避免被虚拟主机覆盖):ssl_session_tickets on;<br>ssl_session_ticket_key /etc/nginx/ticket.key;
/etc/apache2/mods-enabled/ssl.conf):SSLSessionTickets on<br>SSLSessionTicketKeyFile /etc/ssl/private/ticket.key
ssl_session_tickets 和 ssl_session_cache(或 Apache 的 SSLSessionCache)互斥。若同时启用,服务端优先走缓存,票据被忽略。
ssl_session_cache 行<VirtualHost> 或 .htaccess 中意外关闭 SSLSessionTickets,也避免配置 SSLSessionCache shmcb 同时生效即使服务端配对正确,若客户端被迫降级到 TLS 1.0/1.1,票据机制也不生效(这些旧协议不支持)。
ssl_protocols TLSv1.2 TLSv1.3;
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1