一、介绍 Let’s Encrypt 证书
1.什么是 Let’s Encrypt?
部署 HTTPS 网站的时候需要证书,证书由 CA 机构签发,大部分传统 CA 机构签发证书是需要收费的,这不利于推动 HTTPS 协议的使用。Let’s Encrypt 也是一个 CA 机构,但这个 CA 机构是免费的!!!也就是说签发证书不需要任何费用。Let’s Encrypt 由于是非盈利性的组织,需要控制开支,他们搞了一个非常有创意的事情,设计了一个 ACME 协议,目前该协议的版本是 v1。那为什么要创建 ACME 协议呢,传统的 CA 机构是人工受理证书申请、证书更新、证书撤销,完全是手动处理的。而 ACME 协议规范化了证书申请、更新、撤销等流程,只要一个客户端实现了该协议的功能,通过客户端就可以向 Let’s Encrypt 申请证书,也就是说 Let’s Encrypt CA 完全是自动化操作的。任何人都可以基于 ACME 协议实现一个客户端,官方推荐的客户端是 Certbot 。 官方客户端列表请查看 :https://letsencrypt.org/docs/client-options/
2.Certbot 的工作原理具体什么?
Certbot 是一个命令行工具,用于自动化整个 SSL 证书的管理流程。它可以做以下几件事: 申请证书:使用 ACME 协议从 Let’s Encrypt 获取证书。 验证域名所有权:通过 HTTP-01 或 DNS-01 验证确保你拥有该域名。 安装证书:将证书自动安装到你的 Web 服务器,并配置相关的加密参数。 续期证书:定期自动续期证书,避免证书过期。 Certbot 的核心工作是通过 ACME 协议(自动证书管理环境)与 Let’s Encrypt 通信。ACME 是一套标准协议,用于自动化证书申请、验证和安装的过程。Certbot 使用 ACME 协议与 Let’s Encrypt 进行通信,确保你的网站能够通过安全的 HTTPS 连接。
二、环境准备与 Certbot 安装
(一)配置 EPEL 源(将镜像地址更新为阿里云ECS专有加速仓库)
- 执行命令:
wget -O /etc/yum.repos.d/epel-7-cloud.repo https://mirrors.aliyun.com/repo/epel-7-cloud.repo
,从阿里云镜像获取 EPEL 源配置文件,用于安装 Certbot 依赖包。 - 执行命令:
vim /etc/yum.repos.d/epel-7-cloud.repo
将镜像地址更新为阿里云ECS专有加速仓库。
(二)安装 Certbot
- 执行
yum install -y certbot
,通过 yum 安装 Certbot 工具,,用于后续申请 Let’s Encrypt 证书 。
三、申请 Let’s Encrypt 证书(手动 DNS 验证方式)
- 执行命令:
certbot -d 你的域名 -d *.你的域名 --manual --config-dir config --work-dir work --logs-dir logs --preferred-challenges dns certonly
- 它会让你填邮箱什么的,根据需求逐步完成。其中有一个环节是:DNS-01 验证环节,需要你在域名的 DNS 解析中添加特定的 TXT 记录来证明对域名的所有权。以下是具体操作步骤:
1.登录域名解析平台
登录你管理域名 dengyuxiang.top
DNS 解析的平台,比如阿里云域名控制台、腾讯云 DNS 解析、Cloudflare 等(取决于你在哪里注册和管理域名的 DNS 解析)。
2. 添加 TXT 记录在 DNS 解析管理界面中,找到添加记录的入口(通常是 “添加记录”“新增解析” 之类的按钮),然后按以下内容填写:
- 记录类型:选择
TXT
类型
- 主机记录:按照提示,填写记录名,部分平台可能会自动拼接域名,只需填域名之前的部分即可
- 记录值:填写提示里的字符串TTL:可保持默认值(比如 600 秒等,代表记录生效的缓存时间 ),也可根据平台建议设置
- TTL:可保持默认值(比如 600 秒等,代表记录生效的缓存时间 ),也可根据平台建议设置
以阿里云域名解析为例,大致操作路径: 登录阿里云控制台 → 找到 “域名与网站”→“域名解析”→ 选中域名 → 进入解析设置 → 点击 “添加记录”,按上述参数填写后提交。
3.证书申请成功反馈消息
其中包含了证书文件的路径和私钥文件的路径等信息,后续配置nginx需要用到。
(二)注意事项
- 手动方式申请的证书不会自动续期,需在过期前重复执行申请命令续期。
- 申请通配符证书(
*.dengyuxiang.top
)时,DNS TXT 记录部署要准确,且需注意 DNS 传播时间,可借助在线工具(如 Google Admin Toolbox 的 dig 工具)验证记录是否生效 。
三、Nginx 配置(关联 SSL 证书)
(一)定位配置文件
- 进入 Nginx 配置目录:
cd /etc/nginx/conf.d
,该目录下有php - fpm.conf
、wordpress.conf
等配置文件,因我本次需为 WordPress 站点配置 SSL 证书,选择操作wordpress.conf
文件(若需配置其他站点,对应选择该站点的配置文件即可)。
(二)编辑配置文件
- 执行
vim wordpress.conf
编辑配置。
- 通过
sudo nginx - t
测试配置语法,显示nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
、nginx: configuration file /etc/nginx/nginx.conf test is successful
表示语法正确。 - 执行
sudo systemctl restart nginx
重启 Nginx 服务,使新配置生效 。
四、其他补充
这样证书就申请并使用好啦~🎉🎉🎉
但可能会存在连接并非完全安全的问题,此时可以下载插件Really Simple SSL解决。此外也可能是因为在启用 HTTPS 后,如果网页中还引用了 HTTP 协议的资源(如图片、脚本、样式表等),浏览器会认为连接不完全安全。
若之前使用的背景图头像什么的网址为http也会导致图片不显示,这时只需将媒体库中新的地址进行更改到相应引用的位置即可解决。
大功告成🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉