贝博恩创新科技网

Lets Encrypt使用教程,如何免费获取SSL证书?

letsencrypt 使用教程:Let's Encrypt 是一个免费的、自动化的、开放的证书颁发机构(CA),旨在通过提供免费的 SSL/TLS 证书来推动互联网的安全加密,它由非营利组织 ISRG(互联网安全研究小组)管理,支持通过 ACME(自动化证书管理环境)协议实现证书的申请、签发和管理,本文将详细介绍 Let's Encrypt 的使用方法,包括安装配置、证书申请、自动续期及常见问题处理。

Lets Encrypt使用教程,如何免费获取SSL证书?-图1
(图片来源网络,侵删)

准备工作

在开始使用 Let's Encrypt 前,需确保以下条件满足:

  1. 域名所有权验证:需拥有一个已解析到服务器的域名,且 DNS 记录正确指向服务器 IP(支持 HTTP 和 DNS 验证方式)。
  2. 服务器环境:推荐使用 Linux 系统(如 Ubuntu、CentOS),并安装 Web 服务器(如 Nginx、Apache)或 Certbot 客户端。
  3. 端口开放:确保服务器 80(HTTP)或 443(HTTPS)端口可访问,ACME 协议默认通过 HTTP 验证。

安装 Certbot 客户端

Certbot 是 Let's Encrypt 官方推荐的 ACME 客户端,支持自动化的证书申请和部署,以下是不同系统的安装步骤:

Ubuntu/De 系统

sudo apt update
sudo apt install certbot python3-certbot-nginx  # 若使用 Nginx
# 或 sudo apt install certbot python3-certbot-apache  # 若使用 Apache

CentOS/RHEL 系统

sudo yum install epel-release
sudo yum install certbot python3-certbot-nginx

手动安装(适用于其他系统)

从 Certbot 官网下载脚本并安装:

sudo wget https://dl.eff.org/certbot-auto
sudo chmod a+x certbot-auto
./certbot-auto --nginx  # 自动安装依赖并配置 Nginx

申请 SSL 证书

单域名证书申请

假设域名为 example.com,执行以下命令:

Lets Encrypt使用教程,如何免费获取SSL证书?-图2
(图片来源网络,侵删)
sudo certbot --nginx -d example.com
  • --nginx:表示使用 Nginx 插件自动配置(若使用 Apache 则替换为 --apache)。
  • -d:指定要申请证书的域名。

执行过程中,Certbot 会:

  • 自动验证域名所有权(通过在网站根目录创建临时文件)。
  • 提示选择 HTTPS 重定向选项(推荐选择“将 HTTP 重定向到 HTTPS”)。
  • 证书签发后自动修改 Nginx/Apache 配置文件。

多域名证书(SAN 证书)

若需为多个域名申请同一张证书,使用 -d 参数多次指定:

sudo certbot --nginx -d example.com -d www.example.com -d sub.example.com

通配符证书申请

通配符证书(如 *.example.com)需通过 DNS 验证方式申请:

sudo certbot certonly --manual -d *.example.com --preferred-challenges dns
  • --manual:手动验证模式。
  • --preferred-challenges dns:通过 DNS 解析验证。
  • 需按照提示在域名 DNS 管理平台添加 TXT 记录,验证完成后证书将保存至 /etc/letsencrypt/live/ 目录。

证书续期

Let's Encrypt 证书有效期为 90 天,需定期续期,Certbot 支持自动续期,可通过以下方式配置:

Lets Encrypt使用教程,如何免费获取SSL证书?-图3
(图片来源网络,侵删)

手动续期测试

sudo certbot renew --dry-run

若输出无错误,说明续期配置正常。

设置自动续期

创建定时任务(cron):

sudo crontab -e

添加以下行(每天凌晨 2 点检查续期):

0 2 * * * /usr/bin/certbot renew --quiet
  • --quiet:静默模式,避免输出日志。

Nginx/Apache 自动重载

若续期后需手动重载服务,可修改命令为:

0 2 * * * /usr/bin/certbot renew --post-hook "systemctl reload nginx"

证书管理

查看证书信息

sudo certbot certificates

输出包含证书路径、过期时间、域名列表等。

撤销证书

sudo certbot revoke --cert-path /etc/letsencrypt/live/example.com/fullchain.pem

删除证书

sudo certbot delete

按提示选择要删除的证书。

常见问题与解决方案

  1. 验证失败:检查域名 DNS 解析是否正确,确保服务器防火墙允许 80 端口访问。
  2. 证书未自动续期:检查定时任务是否正确设置,或手动执行 certbot renew 查看错误日志。

相关问答 FAQs

问题 1:如何确认 Let's Encrypt 证书是否成功安装?
解答:可通过浏览器访问 https://example.com,查看地址栏是否有锁形标志;或使用命令行工具检查证书详情:

sudo openssl x509 -in /etc/letsencrypt/live/example.com/fullchain.pem -text -noout

问题 2:通配符证书申请时 DNS 验证失败怎么办?
解答:首先确认 TXT 记录的值与 Certbot 提示的完全一致(包括前后空格),并等待 DNS 生效(通常需几分钟到几小时),若仍未解决,可尝试更换 DNS 解析商(如 Cloudflare、DNSPod)或使用 --manual-public-ip-logging-ok 参数跳过 IP 日志记录。

分享:
扫描分享到社交APP
上一篇
下一篇