SSL/TLS深度解析--在Nginx上配置HSTS、CSP与其他-创新互联
在 Nginx 上配置 HSTS
HTTP响应中包含 Strict-Transport-Security 头实现网站HSTS,像下面这样配置:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload,就实现了HSTS,即—— HTTP Strict Transport Security,HTTP严格传输安全。假设TLS连接没有错误,兼容的浏览器将会在 max-age 参数指定的保留期内激活HSTS。
一旦站点启用了HSTS,用户的后续访问就会直接进入443端口,然而你还需要确保那些访问到80端口的用户能被重定向到正确的地址。为了支持这个重定向,而且由于在明文响应中HSTS响应头是不被允许的。
需要配置重定向
# 增加HSTS
[root@www conf]# vim nginx.conf
......
server {
listen 80;
server_name *.test05.com test05.com;
return 301 https://$host$request_uri;
}
......
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always ;
# max-age:时间单位是秒,31536000/3600*24 =365天
# always:表示无论哪种请求都将HSTS的头发送给客户端,也包括错误响应。默认情况404等是不发送HSTS头的。
# includeSubDomains:参数指定在当前主机域名及其所有子域上启用HSTS。
# preload:是一个可选项,是一个为了解决第一次访问的用户,无法预先得知HSTS设置,而创建的
# 要注意 add_header 这个指令的继承方式,如果一个子配置块中设置了 add_header 指令,那么在上层配置块中的 add_header 指令是不会被继承的。如果你需要在子配置中添加额外的 add_header 指令,那么有关HSTS那部分要复制到子配置中。
[root@www conf]# ../sbin/nginx -t
nginx: the configuration file /project/nginx1.15.0/conf/nginx.conf syntax is ok
nginx: configuration file /project/nginx1.15.0/conf/nginx.conf test is successful
[root@www conf]# ../sbin/nginx -s reload

创新互联于2013年创立,是专业互联网技术服务公司,拥有项目成都网站设计、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元高阳做网站,已为上家服务,为高阳各地企业和个人服务,联系电话:13518219792
在 Nginx 上使用 CSP
内容安全策略(content security policy,CSP)是一种声明的安全机制,可以让网站运营者能够控制遵循CSP的用户代理(通常是浏览器)的行为。通过控制要启用哪些功能,以及从哪里下载内容,可以减少网站的***面。
CSP的主要目的是防御跨站点脚本(cross-ste scripting,XSS)***。例如,CSP可以完全禁止内联的JavaScript,并且控制外部代码从哪里加载。它也可以禁止动态代码执行。禁用了所有的这些***源,XSS***变得更加困难。一个网站通过设置 Content-Security-Policy 响应头启用所需的CSP策略。
具体规则:
default-src:默认策略
script-src:js脚本
style-src:样式
img-src:图片
connect-src:链接
font-src:字体
object-src:插件