0Pricing
Linux Server Deployment & SSH Mastery · 课时

使用 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 安装 Nginx/Apache
  2. 托管静态网站
  3. 虚拟主机基础配置
  4. 使用 Let's Encrypt 启用 HTTPS
← 返回 Linux Server Deployment & SSH Mastery