免费升级网站HTTPS
升级完网站的部署工具,今天又把网站变成了https, 这个在之前看《图解HTTP》的时候就想弄,不过一下又忘了,今天算是把它搞定了。
我这边用的 Let’s Encrypt 的免费的机构认证。进入它的官网直接get started
就好了。
要让你的网站启用https,你需要从权威认证机构拿到一个认证证书,Let’s Encrypt 就是一家认证机构。 这里官方推荐大多数人使用 Certbot来获取证书和自动化安装。
安装证书
- 进入https://certbot.eff.org/ 官网,可以直接填写你的web接入的软件和服务部署的系统。
- 然后它下面就直接会出现安装需要执行的命令,对照执行好了。
我的是
nginx
+ubuntu 18.04
:
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository universe
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install certbot python-certbot-nginx
安装完了以后运行
$ sudo certbot --nginx
这个命令会检测你nginx.conf
下面的server_name
,然后让你选择要启动https的域名,直接选序号就行,全选的好直接保持为空就行。
完了之后就会帮你下载证书并且更新你的nginx.conf
:
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/ericjin.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/ericjin.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
还有一个看你有没有选择重定向:
if ($host = www.ericjin.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
到这里,https
就已经启动成功了,你可以直接去页面访问一下http
页面,它会自动重定向到https
去。
定时更新证书
但是这个证书90天就会过期,所以要自动用脚本去更新证书。 你可以用下面的命令去测试自动更新证书的命令:
$ sudo certbot renew --dry-run
在Linux 上的自动化就是crontab
了,直接使用crontab -e
去编辑定时任务:
不清楚的可以看crontab 定时任务
0 0 1 * * /usr/bin/certbot renew --force-renewal
5 0 1 * * /bin/systemctl restart nginx.service
这样就每个月1号去强制更新一下证书。没有--force-renewal
的话,证书没到期它不会更新。
crontab 的六个字段,前五个:
分钟(0-59)
小时(0-23)
日期(1-31)
月份(1-12)
星期(0-7)
第六个字段代表要定时执行的命令
更新博客
然后的话,更新一下blog系统。我这里使用的hugo
,目前只有config.toml
里面的baseURL
需要更改一下,这个根据自己的网站情况更改就好了。
参考:
Let’s Encript https://letsencrypt.org/getting-started/
certbot https://certbot.eff.org/