CentOS7 安装 Let's Encrypt 提供的免费 HTTPS 证书- Certbot 安装 - 无 python 依赖问题

1,376 阅读1分钟

前言

Let's Encrypt 是由非盈利性互联网安全研究小组(ISRG)提供的免费的自动化和开放的证书颁发机构。目前各浏览器支持度比较好,可信度较高。

Let's Encrypt 官方推荐使用 Certbot ACME 客户端来完成 HTTPS 的部署,其它语言或者环境(包括 Bash、Browser、C、Docker、Go、java、Nginx、Node.js、PHP、Perl、Python、Ruby 等等)可以查看 ACME 第三方客户端列表

我的系统环境是 Centos7、Nginx。经过调试后,最后成功的方法是 Certbot 的 certbot-auto。

下载客户端

wget https://dl.eff.org/certbot-auto
chmod a + x ./certbot-auto
chmod +x ./certbot-auto

证书生成

./certbot-auto certonly --agree-tos -m 邮箱地址 --webroot -w 域名的根目录 -d 带 www 你的域名 -d 不带 www 你的域名
  • 域名指向的根目录下生成 .well-known 目录
  • 生成 /etc/letsencrypt 目录,pem 文件存在于 /etc/letsencrypt/live/www.你的域名 目录下

Nginx 的关键修改

443 端口

ssl on;
ssl_certificate /etc/letsencrypt/live/www.你的域名/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.你的域名/privkey.pem;

对于 http 的 80 端口访问,不推荐携带参数重定向到 https,建议直接返回错误或者不携带参数的返回到 https 首页。

证书续期

证书的有效期是三个月,所以需要进行一下续期。我使用计划任务 crontab,每个月执行 certbot-auto renew