资讯专栏INFORMATION COLUMN

Nginx之OCSP stapling配置

CastlePeaK / 3378人阅读

摘要:摘要正确地配置可以提高性能。顾名思义,它是一个用于检查证书状态的协议,浏览器使用这个协议来检查证书是否被撤销。存在隐私和性能问题。检测能够对开启的网站的配置进行全面分析,可以检测的状态。根据文档,最好使用本地服务,可以防止欺骗。

摘要: 正确地配置OCSP stapling, 可以提高HTTPS性能。

什么是OCSP stapling?

OCSP的全称是Online Certificate Status Protocol,即在线证书状态协议。顾名思义,它是一个用于检查证书状态的协议,浏览器使用这个协议来检查证书是否被撤销。使用Chrome浏览器查看https://www.fundebug.com的证书详情,可以看到OCSP的查询地址:

Fundebug使用的是Let"s Encrypt的免费证书,其OCSP查询地址是http://ocsp.int-x3.letsencryp...,浏览器需要发送请求到这个地址来验证证书状态。

OCSP存在隐私性能问题。一方面,浏览器直接去请求第三方CA(Certificate Authority, 数字证书认证机构),会暴露网站的访客(Let"s Encrypt会知道哪些用户在访问Fundebug);另一方面,浏览器进行OCSP查询会降低HTTPS性能(访问Fundebug会变慢)。

为了解决OCSP存在的2个问题,就有了OCSP stapling。由网站服务器去进行OCSP查询,缓存查询结果,然后在与浏览器进行TLS连接时返回给浏览器,这样浏览器就不需要再去查询了。这样解决了隐私性能问题。

检测OCSP stapling

SSL Labs能够对开启HTTPS的网站的SSL配置进行全面分析,可以检测OCSP stapling的状态。

www.fundebug.com进行检查,会发现OCSP stapling是开启的:

kiwenlau.com进行检查,会发现OCSP stapling是关闭的:

配置OCSP stapling

在查询Nginx日志时,我发现了这样的报错信息:

2018/02/27 02:58:11 [warn] 10#10: no resolver defined to resolve ocsp.int-x3.letsencrypt.org while requesting certificate status, responder: ocsp.int-x3.letsencrypt.org, certificate: "/etc/letsencrypt/live/www.fundebug.com/fullchain.pem"

可知,是resolver属性木有配置导致的。resolver属性用于指定DNS服务器地址, OCSP查询地址ocsp.int-x3.letsencrypt.org需要解析为IP地址。

根据Nginx文档,最好使用本地DNS服务,可以防止DNS欺骗(DNS spoofing)。使用公共的DNS服务,例如Google Public DNS(8.8.8.8和8.8.4.4 ),都存在安全隐患。

To prevent DNS spoofing, it is recommended configuring DNS servers in a properly secured trusted local network.

因此,resolver最好配置为127.0.0.1,即本地DNS服务:

resolver 127.0.0.1;

由于本地并没有DNS服务,因此配置resolver之后Nginx会出现以下报错:

2018/02/28 15:35:47 [error] 8#8: send() failed (111: Connection refused) while resolving, resolver: 127.0.0.1:53

这时应该在本地运行一个DNS服务,例如dnsmasq。我们Fundebug所有服务包括Nginx都运行在Docker里面,因此dnsmasq直接运行在Docker里面就好了,这样省去了安装与配置的步骤:

sudo docker run -d --name=dnsmasq --net=host --cap-add=NET_ADMIN andyshinn/dnsmasq:2.75 --log-facility=-

Nginx的OCSP stapling完整配置如下:(此处省略了其他无关的配置选项)

http
{
    resolver 127.0.0.1;

    server
    {
        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_trusted_certificate /etc/letsencrypt/live/www.fundebug.com/chain.pem;
    }
}
参考

TLS 握手优化详解

从无法开启 OCSP Stapling 说起

How To Configure OCSP Stapling on Apache and Nginx

No resolver defined to resolve ocsp.int-x3.letsen

[Nginx resolver vulnerabilities allow cache poisoning attack]()

版权声明:
转载时请注明作者Fundebug以及本文地址:
https://blog.fundebug.com/2018/03/07/nginx_ocsp_stapling/

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39855.html

相关文章

  • 使用 https, 并将 WWW 跳转到 NON-WWW

    摘要:使用定时证书因为是免费证书,所以有一个有效期是天,到期之后需要一下。工具测试评级测试评级出品的配置生成器 0x01: 背景 博客经常不更新,服务器还时不时挂掉一次,导致 PageRank 基本是负的了,不过技术上要跟的上更新啊! 微信小程序接口必须是 https, 这次就当是练手了。 0x02: 整体思路流程 确保自己的域名解析全部是 A 记录 使用 Lets Encrypt 证书,...

    qpal 评论0 收藏0
  • 论微服务安全

    摘要:微服务能够为应用程序设计提供一种更具针对性范围性与模块性的实现方案。安全微服务部署模式可谓多种多样但其中使用最为广泛的当数每主机服务模式。在微服务环境下,安全性往往成为最大的挑战。不同微服务之间可通过多种方式建立受信关系。 每个人都在讨论微服务,每个人也都希望能够实现微服务架构,而微服务安全也日渐成为大家关注的重要问题。今天小数与大家分享的文章,就从应用层面深入探讨了应对微服务安全挑战...

    plokmju88 评论0 收藏0
  • 全站 HTTPS,让你的网站更快速,更安全

    摘要:又拍云全站产品特性可自主上传证书,步开启全站加速服务。又拍云全站产品日志月支持采用了,网站的所有访问将始终连接到该网站的加密版本阻止基于的中间人攻击,保障用户访问安全。 showImg(https://segmentfault.com/img/remote/1460000007823220?w=800&h=296); 1、 为什么要使用 HTTPS ? 保护用户关键信息及账号安全防止页...

    Developer 评论0 收藏0
  • 【大量干货】史上最完整的Tengine HTTPS原理解析、实践与调试

    摘要:内容主要有四个方面趋势基础实践调试。一趋势这一章节主要介绍近几年和未来的趋势,包括两大浏览器和对的态度,以及淘宝天猫和阿里云的实践情况。完整性是指为了避免网络中传输的数据被非法篡改,使用算法来保证消息的完整性。 摘要: 本文邀请阿里云CDN HTTPS技术专家金九,分享Tengine的一些HTTPS实践经验。内容主要有四个方面:HTTPS趋势、HTTPS基础、HTTPS实践、HTTPS...

    snowell 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<