首先,我们要明白HSTS是什么。HSTS是一种安全策略,它告诉浏览器:“只能用HTTPS来访问我的网站,不要用HTTP哦!”这样,即使有人尝试用不安全的方式(HTTP)来访问网站,浏览器也会自动切换到安全的方式(HTTPS)。
现在,我们来看看如何使用Nginx来配置HSTS。
Nginx配置HSTS的示例代码:
server {
listen 80;
server_name example.com;
# 重定向所有HTTP请求到HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
# SSL证书和其他SSL配置...
# 添加HSTS头部
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
# 其他配置...
}
这个配置做了什么呢?
- 重定向HTTP请求到HTTPS:在第一个
server
块中,我们监听80端口(HTTP的默认端口),然后使用return 301 https://$host$request_uri;
指令将所有HTTP请求重定向到HTTPS。这样,如果用户尝试用HTTP访问网站,他们会被自动重定向到HTTPS。 - 添加HSTS头部