是不是觉得别人网站前面的小绿锁很好看?
而且,Google官方也正式承认过https是影响搜索排名的一个因素,那么如何将自己的网站全面升级为https呢?今天的内容就介绍一下如何将部署在Nginx的WordPress增加一个小绿锁。
1.选择SSL证书
HTTPS(Hypertext Transfer Protocol Secure,超文本传输安全协议),是一种通过计算机网络进行安全通信的传输协议。经由HTTP进行通信,但是利用SSL/TLS来加密数据包。因此为了将网站升级为https的,需要先去获取一个ssl证书~
免费的ssl证书申请机构还是不少的,今天介绍一个很好用的Lets‘s Encrypt(https://letsencrypt.org/),这是一个免费、开放、自动化的证书颁发机构。
2.在服务器端配置SSL证书(Ubuntu16.04 Nginx为例)
Certbot有PPA,直接安装就好:
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx
安装Nginx版本的证书,
$ sudo certbot --nginx
这一步需要你输入邮箱以及域名信息,邮箱用来接收证书即将过期的信息(3个月要更新一次)以及安全信息。域名则是你这个证书所应用的网址,如果提示Cannot find a VirtualHost matching domain,可能是你的Nginx里的server_name配置有误,看看是不是正确指向了自己的域名。之后会让你选择Redirect还是No redirect,前者是将所有http请求都重定向到https去。
用这个命令安装是让Certbot自动帮你修改Nginx配置文件实现http变为https(方便,推荐使用),当然你也可以手动配置,通过命令sudo certbot --nginx certonly,这样你就可以自己来设置信息,官方文档参考:https://certbot.eff.org/docs。
重启Nginx,再访问自己的博客,就会发现自己前面也有一个小绿锁了~
3.设置证书自动更新
Certbot的证书有效期是90天,过了90天就得手动更新一次~但是它有自动更新机制,可以通过以下命令测试一下是否正常:
$ sudo certbot renew --dry-run
如果运行正确的话,那么你就可以设置shell+crontab来实现定时任务,以后也不用烦90天更新一次的事了。
1. 在/root下新建一个update.sh:
#!/bin/bash
last_run_time=0
date1=`date +%s`
interval_days_secs=$((87*24*3600))
if [[ $((date1 - last_run_time)) -gt $interval_days_secs ]]; then
certbot renew
sed -i ‘2 s/[0-9][0-9]*/‘$date1‘/‘ update.sh
fi
2. 新建一个crontab任务(crontab -e),设置每天执行一次update.sh:
0 0 * * * /root/update.sh > /root/log 2>&1
3. 重启crontab任务:
sudo /etc/init.d/cron restart