HTTP Strict Transport Security (HSTS) 是一个安全机制, 通知浏览器将来对目网域的所有查询使用 HTTPS, 即使尝连接到 http:// 的网址, 也会强制使用 https:// 的网址.以下分别是在 Let’s Encrypt, Apache, .htaccess 及 Nginx 开启 HSTS 的方法.Let’s EncryptLet’s Encrypt 要启用 HSTS, 当建立凭证时, 加入 –hsts 参数, 即使凭证已经建立, 使用同样的指令并加上 –hsts 参数, 这会尝试重新建立已有的凭证。Apache开启 Apache 的设定档, 或相应 virtualhost 的设定档, 例如:/etc/apache2/sites-enabled/domain.conf 或/etc/httpd/sites-enabled/domain.conf找到 virtualhost 443 的部份, 加入以下一行, 例如:<virtualhost *:443="">
Header always set Strict-Transport-Security "max-age=31536000"
......
......
</virtualhost>修改后重新启动 Apache:$ sudo systemctl restart httpd.htaccess如果网站支援 .htaccess, 在网站根目录的 .htacess 加入以下一行:Header always set Strict-Transport-Security "max-age=31536000" env=HTTPS加入后便会立即生效.Nginx开启 Nginx 的设定档, 或个别主机的设定档, 例如:/etc/nginx/nginx.conf 或/etc/nginx/sited-enabled/yoursite.com (Ubuntu / Debian) 或/etc/nginx/conf.d/nginx.conf (RHEL / Rocky Linux / CentOS)开 port 443 的 server block 设定, 加入 HSTS 设定, 例如:server {
listen 443;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; ";
......
......
}修改后重新启动 Nginx:$ sudo systemctl restart nginx