刚刚买好空间部署好博客,我就立马改成https了,使用的是 Let’s Encrypt 站的免费证书。很简单,不需要多长时间~
1)首先,打开 https://certbot.eff.org 网页。
2)在那个机器上图标下面,你需要选择一下你用的 Web 接入软件 和你的 操作系统。比如,我选的,nginx
和 Ubuntu 14.04
3)然后就会跳转到一个安装教程网页。你就照着做一遍就好了。
我以我本机环境 – Nginx + Ubuntu
首先先安装相应的环境:
$ 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
然后,运行如下命令:
sudo certbot --nginx
1.填入你的邮箱
2.选A
3.yes
4.会从你配置好的站点自动找你的站点,然后列出来,你就简单的输入列表编号(用空格分开)
5.选择https选项
1.无重定向 - 不再更改Web服务器配置。
2.重定向 - 将所有请求重定向到安全HTTPS访问。为新网站选择此选项,或者您确信您的网站在HTTPS上工作。您可以通过编辑Web服务器的配置来撤消此更改。
你打开你的 nginx.conf
文件 ,你可以发现你的文件中的 server
配置中可能被做了如下的修改:(由于我没有在nginx.conf,是在/sites/enabled/default 配置文件中)
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/coolshell.cn/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/coolshell.cn/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
和
# Redirect non-https traffic to https
if ($scheme != "https") {
return 301 https://$host$request_uri;
} # managed by Certbot
然后,就 nginx -s reload
就好了。
但是,Let’s Encrypt 的证书90天就过期了,所以,你还要设置上自动化的更新脚本,最容易的莫过于使用 crontab
了。使用 crontab -e
命令加入如下的定时作业(每个月都强制更新一下):
0 0 1 * * /usr/bin/certbot renew --force-renewal
5 0 1 * * /usr/sbin/service nginx restart
注:crontab 中有六个字段,其含义如下:
- 第1个字段:分钟 (0-59)
- 第2个字段:小时 (0-23)
- 第3个字段:日期 (1-31)
- 第4个字段:月份 (1-12 [12 代表 December])
- 第5个字段:一周当中的某天 (0-7 [7 或 0 代表星期天])
- /path/to/command – 计划执行的脚本或命令的名称