Ubuntu 16.04/17.10下Nginx使用Let’s Encrypt正确启用加密

本教程将向您展示如何在Ubuntu 16.04/17.10上使用Let’s Encrypt在Nginx上正确启用HTTPS。谷歌浏览器和Firefox已经开始提示未加密的网页是不安全的。最终所有的HTTP网页将被标记为不安全。 HTTPS将成为任何网站的默认设置。如果你想利用新的HTTP/2协议来加速你的网站,这也是一个要求。

Let’s Encrypt加密是免费的\自动的\开放的认证机构。官方文档介绍了使用Let’s Encrypt启用HTTPS的简单步骤,但除此之外还有更多。如果你按照官方文档,你会得到一个关于SSL实验室的测试。如果你按照我的步骤,你会得到一个A+。如果您之前已经部署了Let’s Encrypt证书,则仍然可以按照本教程进行更新并替换您的现有证书。

本教程分为2个部分。

第一部分是关于CAA记录,安全头(Security Headers)和OCSP装订。 这些东西可以帮助你获得A +。

第二部分是将www域重定向到非www域,反之亦然。

为您的域名创建CAA记录

证书颁发机构授权(Certificate Authority Authorization,CAA)是一种DNS资源记录,用于指定哪些证书颁发机构(CA)被允许为特定域名颁发证书。 从2017年9月开始,所有CA都必须在颁发特定域名证书之前检查CAA记录。 如果没有为域名找到CAA记录,则任何CA都可以为该域名颁发证书。 如果您的CAA记录中没有列出CA,则该CA无法为您的域名颁发证书。

要创建允许让我们加密的CAA记录为您的域名颁发证书,请在DNS服务器或DNS管理器中添加以下条目。

example.com. IN CAA 0 issue "letsencrypt.org"

你也可以使用

iodef使CA向您的电子邮件地址报告恶意证书问题请求。

example.com. IN CAA 0 iodef "mailto:your-email-address"

上述记录的格式是区域文件。 以下是您的一些提示。

您可以使用SSLMate CAA Record Helper为您的域名生成CCA记录。
如果您使用的是GoDaddy DNS,请按照这个帖子添加CAA记录。
您可以使用下面的dig命令来检查您的CAA记录。

dig example.com CAA

请注意,Web浏览器不检查CAA记录。

安全头(Security Headers)

安全性标头与HTTPS协议一样重要,但只有一小部分支持HTTPS的网站会注意这些标头。虽然关于安全性头文件的完整讨论超出了本教程的范围,但我想谈谈升级不安全请求和HSTS头文件,因为您可以使用Let’s Encrypt轻松启用它们来提高网站的安全性。

升级不安全的请求

有时候一个网站启用了HTTPS,但是一些CSS,图片或JavaScript仍然通过HTTP提供。在这种情况下,浏览器地址栏开头的绿色挂锁将消失。在Google Chrome中,它被一个信息图标取代;在Firefox中,它被灰色的黄色三角形挂锁所取代。您将希望尽可能频繁地向站点访问者显示绿色的挂锁,解决此问题的简单方法是启用升级不安全请求标头,这将强制Web浏览器使用https://对于每个资源。

要启用这个头文件,只需在发出certbot命令时添加–uir标志。请注意,此标头适用于托管在您自己的域上的资源以及支持HTTPS的第三方域上的资源。如果您的网页包含通过HTTPS无法访问的第三方服务器上的资源,那么这些资源将被Web浏览器阻止,但使用此标头可确保您的网页始终获得绿色的挂锁。

HSTS(HTTP严格传输安全)

HSTS头部告诉网络浏览器所有通信应该通过HTTPS完成。它防范SSL Striping,这是一种从HTTPS降级到HTTP的攻击。要启用这个头文件,只需在发出certbot命令时添加–hsts标志。

OCSP装订

当Web浏览器连接到HTTPS网站时,它会向证书颁发机构(CA)发送OCSP(在线证书状态协议)请求,以便查询网站SSL证书的撤销状态。根据Firefox的遥测数据,这可以延迟页面加载1-3秒。为了提高性能,网站所有者可以启用OCSP装订,在这种情况下,Web服务器本身会定期获取由CA签署的OCSP响应,并将其发送到网络浏览器,从而无需Web浏览器联系OCSP服务器。

要启用OCSP装订,只需在发出certbot命令时添加–staple-ocsp标志。

OCSP必须装订

如果一个黑客做了一个假的,重复的网站,关闭OCSP staple并且阻止网络浏览器访问OCSP服务器,那么网络浏览器将认为它是正常的并且进入恶意网站。为了解决这个问题,你可以在你的网站上启用OCSP,这个功能告诉浏览器在HTTPS连接期间,你的网站必须显示OCSP订书响应。因此,当浏览器连接到一个没有OCSP装订的假网站时,它将停止连接。

为了使OCSP必须装订,在发行certbot命令时添加 – 必须主标记。

安装我们在Ubuntu 16.04 / 17.10上加密客户端

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/c9a838ff889d3640120941b32fdc39b0.html