开启HSTS教程

HSTS简介

 

HTTP严格传输安全(英语:HTTP Strict Transport Security,缩写:HSTS)是一套由互联网工程任务组发布的互联网安全策略机制。网站可以选择使用HSTS策略,来让浏览器强制使用HTTPS与网站进行通信,以减少会话劫持风险。

HSTS优点

HSTS可以用来抵御SSL剥离攻击。SSL剥离攻击是中间人攻击的一种,由Moxie Marlinspike于2009年发明。他在当年的黑帽大会上发表的题为“New Tricks For Defeating SSL In Practice”的演讲中将这种攻击方式公开。SSL剥离的实施方法是阻止浏览器与服务器创建HTTPS连接。它的前提是用户很少直接在地址栏输入https://,用户总是通过点击链接或[失效链接]3xx重定向,从HTTP页面进入HTTPS页面。所以攻击者可以在用户访问HTTP页面时替换所有https://开头的链接为http[失效链接]://,达到阻止HTTPS的目的。
HSTS可以很大程度上解决SSL剥离攻击,因为只要浏览器曾经与服务器创建过一次安全连接,之后浏览器会强制使用HTTPS,即使链接被换成了HTTP。
另外,如果中间人使用自己的自签名证书来进行攻击,浏览器会给出警告,但是许多用户会忽略警告。HSTS解决了这一问题,一旦服务器发送了HSTS字段,用户将不再允许忽略警告。

HSTS不足

用户首次访问某网站是不受HSTS保护的。这是因为首次访问时,浏览器还未收到HSTS,所以仍有可能通过明文HTTP来访问。

由于HSTS会在一定时间后失效(有效期由max-age指定),所以浏览器是否强制HSTS策略取决于当前系统时间。部分操作系统经常通过网络时间协议更新系统时间,如Ubuntu每次连接网络时,OS X Lion每隔9分钟会自动连接时间服务器。攻击者可以通过伪造NTP信息,设置错误时间来绕过HSTS。

 

 

浏览器支持

 

Chromium和Google Chrome从4.0.211.0版本开始支持HSTS

Firefox 4及以上版本

Opera 12及以上版本

Safari从OS X Mavericks起

Internet Explorer和Microsoft Edge从Windows 10开始支持

 

 

开启HSTS

1.需要先将HTTP强制跳转到HTTPS链接

2.Apache与Nginx需要添加在监听的443端口的配置文件.Vestacp是在snginx.conf里面.

 

Apache

 

编辑站点配置文件在443端口区修改为以下内容

 

 

Lighttpd

增加到 Lighttpd 配置文件:/etc/lighttpd/lighttpd.conf

 

 

Nginx

Nginx最为简单,在server_name下面另起一行增加即可

LNMP编辑你的网站目录下的: /usr/local/nginx/conf/vhost/xxx.com.conf

 

 

IIS

需要第三方组件:http://hstsiis.codeplex.com

 

修改好配置文件后,重启WEB服务器即可.

 

参数说明

其中:

  • max-age是必选参数,是一个以秒为单位的数值,它代表着HSTS Header的过期时间,通常设置为1年,即31536000秒。
  • includeSubDomains是可选参数,如果包含它,则意味着当前域名及其子域名均开启HSTS保护。
  • preload是可选参数,只有当你申请将自己的域名加入到浏览器内置列表的时候才需要使用到它。

 

HSTS Preload List

加入HSTS Preload List

打开:

https://hstspreload.org/

 

输入你的域名后点击“”Check HSTS preload status and eligibility

 

 

LNMP – 安装SSL安全证书且部署HTTPS教程

 

ssl-logo2

修改/usr/local/nginx/conf/vhost/bxl.pm.conf(这里填写你的配置文件)

将listen 80的端口改为443(如果不需要强制跳转,可以在下面补上listen 443即可),并下面加入

ssl on;

ssl_certificate 证书的存放位置;

ssl_certificate_key 密钥的存放位置;

 

下面我是的配置文件,大家可以参考.

 

修改完毕后,我们最好验证一下

 

 

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

 

如果出现上面的字符说明节点已经配置正常。

最后重启nginx即可

 

413 Request Entity Too Large – 413错误解决方法

昨天在使用Wordpress的flash版文件上传功能的时候,总是提示500错误,很是郁闷。仔细想了想,服务器设置的是20MB上传就出现问题是不可能的呀!

切换到传统文件上传界面,重新上传一个大文件,这回出来错误提示了,413 Request Entity Too Large,发现是Nginx的错误提示。

401解决方法

打开nginx主配置文件nginx.conf,找到http{}段,添加

上面的20M是上传的大小,你可以自己设置大小的。

Centos下

重启NGINX

现在试一下就正常了。

nginx 301 域名重定向

Nginx反向代理教程

1、安装Nginx

2、配置nginx.conf

编辑/etc/nginx/nginx.conf

3,重启Nginx

subs_filter 注:
g(默认): 替换所有匹配的字段串。
i: 执行区分大小写的匹配。
o: 仅替换首个匹配字符串。
r: 使用正则替换模式,默认是固定模式。

Nginx – 安装配置防盗链模块nginx-accesskey

下载Nginx和nginx-accesskey

修改Nginx-accesskey配置文件:

编译安装Nginx:

编辑Nginx配置文件,添加:

Nginx防盗链应用测试:

 

Nginx – 图片文件防盗链配置

Nginx可根据浏览器请求的Referer防盗链,限制非本站的页面链接请求,更严格的限制可使用防盗链模块nginx-accesskey。
编辑Nginx配置文件,在Server段加入以下内容:

 

nginx – 设置目录密码保护

1、下载htpasswd生成程序

2、下载完成后会自动执行,然后输入账户和密码,会返回路径,如
3、然后到对应的vhost中的conf中添加代码

Nginx – 限制IP请求数防CC攻击

编辑Nginx配置文件在http段添加:

server添加: