使用 Let's Encrypt 启用 HTTPS
使用 Let's Encrypt 提供的免费 TLS 证书保护 Web 服务器。安装 Certbot、获取并自动续期证书,并配置 Nginx 或 Apache 通过 HTTPS 提供流量服务,同时设置 HTTP 重定向。
使用 Let's Encrypt 启用 HTTPS 是 CoddyKit 上的免费 Linux Server Deployment & SSH Mastery 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Linux Server Deployment & SSH Mastery 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Linux Server Deployment & SSH Mastery 课程共包含 4 节课。
为什么 HTTPS 不可或缺
您可以托管网站并配置虚拟主机,但如果通过普通 HTTP 提供服务,流量就会暴露于窃听和篡改之下。如今,浏览器会将 HTTP 网站标记为“不安全”。
HTTPS 使用 TLS 证书加密流量。得益于 Let's Encrypt,这些证书可以免费自动获取。
Let's Encrypt 的工作方式
Let's Encrypt 是一个免费签发短期(90 天)证书的证书颁发机构。为了证明您控制着某个域名,它会通过自动化质询使用 ACME 协议。
名为 Certbot 的客户端会代您请求、安装和续期证书。
前提条件
请求证书前,请确认:
- 您域名的 DNS A 记录指向服务器的 IP
- 防火墙已开放 80 和 443 端口
- Web 服务器正在运行并为该域名提供服务
质询需要能够从互联网访问 80 端口。
sudo ufw allow 'Nginx Full'
dig +short yourdomain.com安装 Certbot
Certbot 可以作为软件包安装,并提供适用于 Nginx 和 Apache 的插件,可自动完成配置更改。
sudo apt install certbot python3-certbot-nginx
# For Apache:
sudo apt install certbot python3-certbot-apache获取证书(Nginx)
Nginx 插件不仅会获取证书,还会编辑服务器块以使用该证书。使用 -d 传入您的域名。
Certbot 会自动检测匹配的服务器块。
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com获取证书(Apache)
对于 Apache,使用 apache 插件时流程完全相同。Certbot 会更新您的虚拟主机配置以启用 SSL。
sudo certbot --apache -d yourdomain.com强制重定向到 HTTPS
在设置过程中,Certbot 会询问是否将 HTTP 重定向到 HTTPS — 请选择“是”。如果您跳过了此步骤,请在 HTTP 服务器块中手动添加重定向。
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}自动续期
证书会在 90 天后过期,但 Certbot 会安装 systemd 定时器(或 cron 任务)来自动续期。您可以通过试运行安全地测试续期过程。
sudo certbot renew --dry-run
systemctl list-timers | grep certbot验证您的证书
访问网站并检查证书,以确认 HTTPS 正常工作。您可以通过 CLI 列出受管理的证书并检查其过期时间。
sudo certbot certificates
curl -svI https://yourdomain.com 2>&1 | grep -i 'subject\|expire'强化 TLS
为了获得最高级别的安全性,请调整 TLS 配置:禁用旧协议、优先使用强加密套件,并启用 HSTS,使浏览器始终使用 HTTPS。
Mozilla 的 SSL Configuration Generator 等工具可以生成可直接粘贴的设置。
ssl_protocols TLSv1.2 TLSv1.3;
add_header Strict-Transport-Security 'max-age=63072000' always;最佳实践
确保 HTTPS 可靠运行:
- 始终将 HTTP 重定向到 HTTPS
- 设置完成后,使用
--dry-run测试续期 - 开放 80 和 443 端口;续期需要使用 80 端口
- 仅启用 HSTS 和现代 TLS 协议
快速检查
测试您对 HTTPS 的了解。
回顾
您已使用免费的 TLS 保护 Web 服务器:
- 通过 Nginx/Apache 插件安装了 Certbot
- 使用
certbot --nginx -d获取了证书 - 强制将 HTTP 重定向到 HTTPS
- 通过试运行确认了自动续期
现在,您的静态网站和虚拟主机默认都会提供加密流量。
常见问题解答
「使用 Let's Encrypt 启用 HTTPS」课时是免费的吗?
是的 — 「使用 Let's Encrypt 启用 HTTPS」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Linux Server Deployment & SSH Mastery 课程的其余内容,请升级到 CoddyKit PRO。 Linux Server Deployment & SSH Mastery 课程共包含 4 节课。
「使用 Let's Encrypt 启用 HTTPS」这节课中我会学到什么?
使用 Let's Encrypt 提供的免费 TLS 证书保护 Web 服务器。安装 Certbot、获取并自动续期证书,并配置 Nginx 或 Apache 通过 HTTPS 提供流量服务,同时设置 HTTP 重定向。 你通过在浏览器中直接运行的动手代码来练习 Linux Server Deployment & SSH Mastery,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Linux Server Deployment & SSH Mastery 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Linux Server Deployment & SSH Mastery 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「使用 Let's Encrypt 启用 HTTPS」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Linux Server Deployment & SSH Mastery 课中编写并运行代码吗?
能。每节 Linux Server Deployment & SSH Mastery 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 安装 Nginx/Apache
- 托管静态网站
- 虚拟主机基础配置
- 使用 Let's Encrypt 启用 HTTPS