使用Let's Encrypt开启Https并自动更新,为你的网站添加小绿锁

  不难发现,很多的网站都有一个小绿锁的标志

image

  浏览器甚至会对一些http的网站报出警告。虽然Hexo博客是一个静态的网站,但是作为一个追求完美的人,不折腾一下怎么会舒服呢。其实早就为自己博客开启了https了,只是一直没有记录下来,还是做一下简单的记录吧。

  环境:Ubuntu 18.04

超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLSHTTP over SSLHTTP Secure)是一种透过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。这个协议由网景公司(Netscape)在1994年首次提出,随后扩展到互联网上。

——Wiki

Let’s Encrypt是一个于2015年三季度推出的数字证书认证机构,旨在以自动化流程消除手动创建和安装证书的复杂流程,并推广使万维网服务器的加密连接无所不在,为安全网站提供免费的SSL证书。

——Wiki

为网站开启HTTPS,添加小绿锁

  HTTPS是大势所趋,不管有没有必要,有时间还是得弄一下,安全性是一方面,另一方面还可以提升网站的排名等,作用还是挺多的。而且Let’s Encrypt是免费的,何乐而不为呢,更何况也花不了几分钟。

获取Let’s Encrypt证书

安装Certbot

  Ubuntu下在终端执行:

1
sudo apt-get install letsencrypt

  更多版本参见Certbot官网

获取证书

  Ubuntu下在终端执行:

1
letsencrypt certonly --webroot -w /var/www/blog -d leihungjyu.com

  -w后面为自己blog的目录位置,-d后面为自己的网址。执行成功后会在/etc/letsencrypt/live/目录下生成对应的目录,如图:

image

  在网址目录下存放的就是生成的证书文件了:

image

配置Nginx

  在成功生成证书后,就需要对Nginx进行一个简单的配置,Nginx的安装和配置可以参考我之前的文章:站点重建,Hexo建站使用Git部署到VPS

  打开Nginx的配置文件,我自己的为/etc/nginx/site-available/default。使用vim打开,添加配置如下:

1
2
3
4
5
6
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/leihungjyu.com/fullchain.pem; //修改为自己网站的目录
ssl_certificate_key /etc/letsencrypt/live/leihungjyu.com/privkey.pem; //修改为自己网站的目录
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

  配置完成后,执行systemctl restart nginx重启nginx,然后打开浏览器,就能看到小绿锁和证书相关信息了。

image

image

image

自动更新证书

  证书有效期为90天,需要自己手动执行letsencrypt renewsystemctl restart nginx来更新网站的证书,追求完美的懒人肯定不希望每隔两个多月就手动更新一下。所以使用cron job来完成。

启动cron

  Ubuntu自带了cron,使用pgrep cron查看是否运行。如图出现一串数字就说明在运行。

image

编辑定时任务

  执行crontab -e,第一次执行需要选择编辑器,选择vim basic就行。选择完后编辑内容,设置每两个月的第一天执行letsencrypt renew && systemctl restart nginx

1
2
# m h  dom mon dow   command
0 0 1 */2 * letsencrypt renew && systemctl restart nginx

  至此,为网站开启小绿锁HTTPS支持并自动更新就完成了。

打赏点猫粮钱吧~