Nginx配置全局HSTS、OCSP、OCSP Stapling协议

实用技巧 教程 Nginx SSL 2020-03-7 阅读:1695

Nginx配置全局HSTS、OCSP、OCSP Stapling协议

相信大家都能在网上找到Nginx配置 HSTS、OCSP、OCSP Stapling 协议,但是找不到能配置全局HSTS、OCSP、OCSP Stapling协议的。
想必应该有一大部分人想要每个站点都配置HSTS、OCSP、OCSP Stapling协议,然而只能一个站点一个站点的配置。
站点少的那还好,像一些大佬的站点往往都是几十个上百个,手动一个个配置起来很伤神。
所以今天我就发一个能全局配置HSTS、OCSP、OCSP Stapling协议的方法。

什么是HSTS

HSTS(HTTP Strict Transport Security,RFC6797),即HTTP严格安全传输,是国际互联网工程组织 IETF 正在推行一种新的Web安全协议。
网站采用HSTS后,用户访问时无需手动在地址栏中输入HTTPS,浏览器会自动采用HTTPS访问网站地址,从而保证用户始终访问到网站的加密链接,保护数据传输安全。
同时只要浏览器曾经与服务器创建过一次安全连接,之后浏览器会强制使用HTTPS,即使链接被换成了HTTP。
简单点讲就是抵御SSL剥离攻击

什么是OCSP

在线证书状态协议(Online Certificate Status Protocol),简称OCSP,是一个用于获取 X.509 数字证书撤销状态的网际协议,在RFC 6960中定义。OCSP用于检验证书合法性,查询服务一般由证书所属CA提供。OCSP查询的本质,是一次完整的HTTP请求加响应的过程,这中间涵括的DNS查询、建立TCP连接、Web端工作等步骤,都将耗费更多时间,使得建立TLS花费更多时长。

OCSP Stapling的作用

而这时,OCSP Stapling出现了。经由OCSP Stapling(OCSP 封套),Web端将主动获取OCSP查询结果,并随证书一起发送给客户端,以此让客户端跳过自己去寻求验证的过程,提高TLS握手效率。

怎样实现全局配置

你们看看每个站点的Nginx配置,是不是发现有一些共同点。
每个站点都引用了共同的PHP配置,而我使用的方法是通过PHP配置达到全局配置。
所以我们只要修改一个PHP配置文件就能达到修改多个站点Nginx配置,因为我使用的是PHP7.4,所以引用文件就是 enable-php-74.conf

所以我们就在 enable-php-74.conf 里写入我们要配置的代码,一般情况下最好直接加在此文件的最上方并且用换行隔开。

代码如下:


    #开启HSTS,并设置有效期为“31536000秒”(一年),包括子域名(根据情况可删掉),预加载到浏览器缓存(根据情况可删掉)
    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";
    #OCSP Stapling开启,OCSP是用于在线查询证书吊销情况的服务,使用OCSP Stapling能将证书有效状态的信息缓存到服务器,提高TLS握手速度
    ssl_stapling on;
    #用于查询OCSP服务器的DNS
    resolver 8.8.8.8 114.114.114.114 valid=3600s;
    #OCSP Stapling验证开启
    ssl_stapling_verify on;

以上是我自用配置,如有更好的方案或配置可以联系我 懵仙兔兔

Ps:如果装了多个PHP,那就在需要的PHP的 enable-php-xx.conf 文件里加入你的配置

版权声明

本文基于《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
文章链接:https://2dph.com/archives/nginx-hsts-ocsp.html (转载时请注明本文出处及文章链接)


如果觉得我的文章对你有用,请随意赞赏

3条评论

    清风

    优秀

    游客 安卓派 123 天前回复

    Tooler

    收藏了

    游客 Windows10 125 天前回复

      懵仙兔兔
      @Tooler

      欢迎踩踩

      作者 安卓派 125 天前回复

目前距离2020年高考还有
作者

懵仙兔兔

更多Ta的文章

  • 49篇

    作者文章数量

  • 160条

    作者评论数量

Pixiv日榜Top50