使用 Let's Encrypt 和 Certbot 为您的网站配置 HTTPS 是一个简单的过程,可以增强网站的安全性和可信度。Let's Encrypt 提供免费的 SSL/TLS 证书,而 Certbot 则能自动完成其中大部分步骤。
先决条件:
- 域名:您必须拥有或控制您想要为其获取证书的已注册域名。
- DNS 配置:您的域名 DNS 记录必须指向服务器的公共 IP 地址。
- Web 服务器:您需要安装并配置好 Web 服务器(Apache 或 Nginx)以托管您的网站。
- SSH 访问:您需要具备 SSH 访问权限,并拥有
sudo具有管理权限。 - 防火墙(如适用):确保防火墙中已开放 80 端口(用于 HTTP)和 443 端口(用于 HTTPS)。
设置 HTTPS 的步骤:
1. 安装 Certbot
Certbot 是 Let's Encrypt 的官方客户端,可自动完成 SSL 证书的获取和续期流程。安装 Certbot 的推荐方法是使用 snapd.
- 安装
snapd:若您尚未snapd,请按照 Snapcraft 网站上的说明,根据您的操作系统进行安装。 - 移除旧版 Certbot 软件包(如有):如果您之前曾通过包管理器(如
apt,dnf或yum,请移除这些包以避免冲突。例如,在 Ubuntu 上,您可以运行sudo apt-get remove certbot. - 通过 Snap 安装 Certbot:
bash sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot该snap包可确保您获得最快的更新,并包含必要的插件。
2. 获取并安装 SSL 证书
具体命令会因您的 Web 服务器(Apache 或 Nginx)而略有不同。
-
对于 Apache:
bash sudo certbot --apache -d yourdomain.com -d www.yourdomain.com请将yourdomain.com替换为您实际的域名。Certbot 将引导您完成设置,询问您的电子邮件地址、服务条款的同意情况,以及是否将 HTTP 流量重定向到 HTTPS。 -
对于 Nginx:
bash sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com同样,请将yourdomain.com替换为您实际的域名。Certbot 将自动配置 Nginx 以提供证书并启用 HTTPS。在此过程中,Certbot 会要求您: * 输入用于接收紧急续期和安全通知的电子邮件地址。 * 同意 Let's Encrypt 服务条款。 * 决定是否将您的电子邮件地址分享给电子前沿基金会 (EFF)。 * 选择是否将 HTTP 流量重定向到 HTTPS。通常建议启用此功能。
3. 验证自动续期
Let's Encrypt 证书有效期为 90 天。Certbot 会自动设置 cron 任务或 systemd 定时器,在证书过期前进行续期。
您可以通过模拟运行测试自动续期流程:
sudo certbot renew --dry-run
此命令仅检查续期是否能成功,而不会实际续期证书。
4. 检查您的网站
安装成功后,请通过浏览器访问您的网站: https://yourdomain.com访问您的网站。您应在地址栏中看到一个挂锁图标,这表示连接是安全的。您还可以使用 SSL Shopper 等在线 SSL 检测工具来验证证书的详细信息。