使用Let's Encrypt把网址升级成HTTPS

Let’s Encrypt 是免费、开放和自动化的证书颁发机构

记录一下使用Let's Encrypt免费让自己的网站从HTTP升级为HTTPS

安装Certbot

官方建议大多数具有命令行访问权限的人使用 Certbot ACME 客户端。它可以在不下线您的服务器的前提下自动执行证书颁发和安装。

  1. 添加Certbot PPA
    1
    2
    3
    4
    5
    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
  2. 安装Certbot
    1
    sudo apt-get install certbot python-certbot-nginx
  3. 生成证书
    1
    sudo certbot certonly --standalone -d example.com -d www.example.com

Nginx配置启用HTTPS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server {
listen 80;
server_name wyang.club www.wyang.club;
return 301 https://$server_name$request_uri;
}
server {
server_name wyang.club www.wyang.club;
listen 443 ssl; # managed by Certbot

# RSA certificate
ssl_certificate /etc/letsencrypt/live/wyang.club/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/wyang.club/privkey.pem; # managed by Certbot

include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
}

重新载入下配置即开启https,注意要将443端口放开

自动更新SSL证书

创建定时任务

1
sudo crontab -e

在最后添加

1
15 2 * */2 * certbot renew --pre-hook "sudo nginx -s stop" --post-hook "sudo nginx"

--pre-hook这个参数表示执行更新操作之前要做的事情,--post-hook 这个参数表示执行更新操作完成后要做的事情.

1
sudo crontab -l

查看一下是否存在刚才添加的定时命令。如果存在的话,每隔两个月的凌晨 2:15 执行 更新操作

参考