序
自从浏览器开始主动提示网站不安全开始,我就一直想找机会把博客站aTechie做一下升级,终于……终于这次找到机会了(太懒了,哈哈哈)。
关于HTTPS
先用一张图片来直观展现HTTPS的原理
简单的说,HTTPS的安全性通过引入SSL带来的。具体能带来哪些安全性,请自行百度或谷歌。对于我的场景来说,只要比在互联网上“裸奔”要强,就是一种安全。
环境准备
- 阿里云环境
- SSL证书控制台
- 域名控制台
- ECS环境
- CentOS
- Nginx
- Wordpress 后台
原理说明
- 通过SSL证书控制台购买免费的由DigiCert提供的DV域名级SSL证书(Domain Validation SSL Certificate)
- 通过域名验证并审核通过后,获得DV SSL证书。
- 在Nginx中部署DV SSL证书。
- 修改Wordpress配置
操作记录
购买证书——免费的!
注1:每个账号最多能申请20个免费的证书。(截止20200905)
注2: 免费证书仅支持单域名。即www.abc.cn和abc.cn是2个域名,需要两个DV SSL证书。
证书申请、验证和审核
证书申请
域名验证
- 切换到域名控制台
- 添加TXT解析记录
- 切换回SSL证书控制台进行验证
证书审核
- 域名验证通过后提交证书审核
下载证书
几分钟的功夫证书就生成了,然后把对应Nginx类型的证书下载下来。
在Nginx上部署并配置证书
部署证书
在ECS上找到Nginx的主目录,我这里是/etc/nginx。在其中建立一个专门放置证书的目录cert,并通过FTP将证书上传到该目录中。
修改nginx对应站点配置
在www.abc.cn.conf中,参照之前http 80端口访问的方式,新增https 443端口的访问配置。
server {listen 443 ssl;server_name www.abc.cn;ssl_certificate cert/www.abc.cn.pem;ssl_certificate_key cert/www.abc.cn.key;ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;......}
在原有的http 80端口访问的方式中,增加301重定向。
server {listen 80;server_name www.abc.cn;rewrite ^/(.*)$ https://www.abc.cn/$1 permanent;......}
应用站点配置
#nginx -s reload
https访问验证
https访问验证
wget https://www.abc.cn
--2020-09-03 13:21:39-- https://www.abc.cn/
正在解析主机 www.abc.cn (www.abc.cn)... 1.1.1.1
正在连接 www.abc.cn (www.abc.cn)|1.1.1.1|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:未指定 [text/html]
正在保存至: “index.html”index.html [ <=> ] 97.40K --.-KB/s 用时 0.1s
http重定向验证
wget http://www.abc.cn
--2020-09-03 13:25:03-- http://www.abc.cn/
正在解析主机 www.abc.cn (www.abc.cn)... 1.1.1.1
正在连接 www.abc.cn (www.abc.cn)|1.1.1.1|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 301 Moved Permanently
位置:https://www.abc.cn/ [跟随至新的 URL]
--2020-09-03 13:25:03-- https://www.abc.cn/
正在连接 www.abc.cn (www.abc.cn)|1.1.1.1|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:未指定 [text/html]
正在保存至: “index.html.1”index.html.1 [ <=> ] 97.40K --.-KB/s 用时 0.1s
特别说明
前面提到过免费证书仅支持单域名。即www.abc.cn和abc.cn是2个域名,需要两个DV SSL证书。如果只申请了www.abc.cn的证书,通过重定向把访问abc.cn的https请求指向www.abc.cn,会发生什么情况呢?
wget https://abc.cn
--2020-09-03 13:29:43-- https://abc.cn/
正在解析主机 abc.cn (abc.cn)... 1.1.1.1
正在连接 abc.cn (abc.cn)|1.1.1.1|:443... 已连接。
错误: 没有匹配的证书主体别名 (Subject Alternative Name)。请求的主机名为 “abc.cn”。
要以不安全的方式连接至 abc.cn,使用“--no-check-certificate”。
可以看到,网站访问是没有问题,但会提示“不安全”,为了避免这种情况,就再申请一个abc.cn的证书吧,反正也不要钱。
Wordpress站点信息修改
直接将http://www.abc.cn/修改为https://www.abc.cn/就可以了。
自此,Wordpress网站的HTTPS升级就全部完成了,分分钟可能有点夸张,半个小时应该绰绰有余了。
如果本文对您有帮助,请点击获取阿里云的代金券,以最优惠的价格支持您云上业务的发展!
参考资料
- Chrome 和 Firefox 即将开始在不安全的网站显示警告信息
- 域名型(DV),企业型(OV),增强型(EV)三种SSL证书之间的区别