Linux(ubuntu)系统下为wordpress网站开启HTTPS

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer)是HTTP协议的安全高级版,也是现在网络的大趋势。由于HTTP协议的安全不确定性,会发生传输内容被窃听篡改的风险,在生活中最常见的就是运营商对于网络的劫持,会在HTTP传输协议的网页内插入广告。

HTTPS主要由HTTP和SSL/TLS组成,就是在HTTP传输协议基础上加密。通过认证用户和服务器,最大限度保障信息传输的安全。

HTTPS传输原理随着Google、Apple、Mozilla等大型互联网公司的积极推动,很快我们将迎来更加健康安全的网络环境,因此为我们的网站增加HTTPS协议是非常有必要的。

对于个人站长或者中小型网站来说,商业性的SSL证书成本太高,因此ISRG推出了一项免费的证书服务——Let’s Encrypt

Let’s Encrypt 是国外一个公共的免费SSL项目,由 Linux 基金会托管,它的来头不小,由 Mozilla、思科、Akamai、IdenTrust 和 EFF 等组织发起,目的就是向网站自动签发和管理免费证书,以便加速互联网由 HTTP 过渡到 HTTPS,目前 Facebook 等大公司开始加入赞助行列。并于2018年3月正式支持通配符证书。Let’s Encrypt 宣称将继续清除 Web 上采用 HTTPS 的障碍,让每个网站轻松获取管理证书。

申请方法

为了实现通配符证书,Let’s Encrypt 对 ACME 协议的实现进行了升级,只有 v2 协议才能支持通配符证书。官方介绍 Certbot 0.22.0 版本支持新的协议版本,下面就使用certbot开始申请免费的通配符证书。

服务器系统:Ubuntu16.04 LTS     配置域名:a.com

  • 获取Certbot

$ wget -c https://dl.eff.org/certbot-auto
chmod u+x certbot-auto     # 设为可执行权限
  • 申请证书
./certbot-auto certonly -d"*.a.com" -d"a.com" --manual --preferred-challenges dns-01
--server https://acme-v02.api.letsencrypt.org/directory 
# 将a.com替换成自己的域名即可

命令参数说明:

  • -certonly,插件,Certbot 有很多插件,不同的插件都可以申请证书。
  • -manual,手动安装插件。
  • -d,指定申请证书的域名(需要指定*.a.com和a.com两个,否则会出错)。
  • -preferred-challenges,使用 DNS 方式校验域名所有权。
申请Let's Encrypt证书的时候,需要对域名的所有权做验证,目前支持三种验证方式:
dns-01:给域名添加一个 DNS TXT 记录。
http-01:在域名对应的 Web 服务器下放置一个 HTTP well-known URL 资源文件。
tls-sni-01:在域名对应的 Web 服务器下放置一个 HTTPS well-known URL 资源文件。
而申请通配符证书,只能使用dns-01。
  • -server,ACME v2需要指定服务器。

接下来就是需要确认的信息,分别是:

第一个确认,是否同意 Let’s Encrypt 协议要求

第二个确认,是否对域名和机器(IP)进行绑定

第三个确认,会要求将DNS TXT记录进行域名解析,解析完成后回车确认

如果没有错误的话,会有成功申请证书,以及证书存放位置的提示信息。

  • 配置证书

在nginx的配置站点文件中修改,开启443端口监听,将证书信息写入配置文件即可。

证书续期

Let’s Encrypt证书有效期只有90天,按照证书申请完成后的信息提示,证书到期日之前,执行./certbot-auto renew即可。

共有 0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注