如何为你的WWW站点启用HTTPS?

如何为你的WWW站点启用HTTPS?

本文环境为Ubuntu LTS 16.04,已经安装配置好了Nginx,http可以访问。目标是为该网站启用HTTPS,增强站点安全性。

目前获取安全证书的方案有三:

本文中将采取第三种方式。

Let's Encrypt证书机构颁发的免费证书对任何人都是开放的,所以在获取证书的过程中会验证证书申请人是否对网站有控制权,例如,能否在WWW主机上执行获取证书程序。

另外,网站应保持启动,域名有效,80端口可被外界访问。

具体访问步骤如下:

本文忽略了安装前提软件的执行过程,同时因为系统中有多个站点,所以还是希望能够获取到证书后自行配置启用HTTPS。以下主要是命令 sudo certbot --nginx certonly 的日志记录。过程中需要回答一些问题。

根据日志可以看到,证书为/etc/letsencrypt/live/mytest.chinanorth.cloudapp.chinacloudapi.cn/fullchain.pem,

key文件为/etc/letsencrypt/live/mytest.chinanorth.cloudapp.chinacloudapi.cn/privkey.pem,证书过期日期为 2018-11-04 。自动续订的命令为 certbot renew

查看Linux系统还可发现,只有root可以操作/etc/letsencrypt/live目录。

编辑Nginx的配置文件,将证书信息更新到配置之中。

重新访问站点,如下图所示,表明HTTPS启用成功。

用户默认访问HTTP站点,为了让用户访问HTTP时自动跳转到HTTPS,需要编辑Nginx的配置文件,如下:

重新启动Nginx验证

使用certbot可以极大程度简化证书的获取过程,而自动化续订更是极大的方便了系统运维人员,并确保站点始终安全运行。

据调查,29%的TLS应用都使用了有效期为90天的证书,所以Let's Encrypt的证书有效期只有90天。有效期为90天和1年对数据加密并无影响,但较短的有效期能够降低证书被盗用的风险,并且有助于推动证书续订自动化。

通过查看证书的详细信息,可以发现免费签发的证书是只验证域名所有权,而不验证所有者和机构的。所以这类证书也叫做DV(Domain Validated)证书。校验所有者的证书叫做OV(Owner Validated)证书。此外,金融类等机构要求超级安全的证书,要求更加严格的身份验证标准,也叫EV(Extend Validated)证书。