letsencrypt创建免费ssl

letsencrypt简介

lesencrypt是致力推广https,提供免费ssl证书的组织。通过Certbot工具软件可以方便快捷申请ssl证书。
ssl证书申请主要是发起请求,提供验证服务器设置权限方式,生成ssl证书等步骤。
certbot通过多种插件提供不通的服务器验证方式。个人推荐webroot.

webroot申请证书

  1. 安装certbot,以apt包管理工具为例

    apt update && apt install -y certbot

  2. 创建一个目录用来验证,并保证有操作权限

    mkdir /var/www/certbot
    chmod 777 /var/www/certbot

  3. 在服务器的域名访问配置中增加验证的请求目录,以nginx配置为例
    1
    2
    3
    4
    5
    6
    7
    8
    server {
    ...

    location /.well-known/acme-challenge/ {
    root /var/www/certboot;
    }
    }
    nginx -s reload
  4. 使用命令申请ssl证书

    certbot certonly --webroot -w /var/www/certbot -d www.xxx.com -email xxx.com

  5. 证书申请后,就是使用.以本机nginx使用为例
    1
    2
    3
    4
    5
    6
    7
    8
    server {
    listen 443 ssl;
    root /var/www/ptah;
    index index.html index.htm;
    ssl_certificate /etc/letsencrypt/live/www.xxx.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.xxx.com/privkey.pem;
    }
    nginx -s reload
  6. 默认创建的证书,有效期只有90天,可以使用定时任务+certbot renew命令来刷新。

    crontab -e,输入 */12 * * * * certbot renew,即可每12分钟调用命令。certbot renew会检查之前创建的ssl证书。并且如果证书的有效期只有20天了,则会重新申请证书。