在这个隐私和安全日益重要的时代,如果你运营的网站还在用明文的 HTTP 协议,那地址栏旁边那个“不安全”的警告,是不是让你看着有点心慌慌?用户看到这个可能也会“用脚投票”,扭头就走。而且,搜索引擎(比如 Google)也早就明确表示,HTTPS 是影响排名的一个因素。所以,给网站启用 HTTPS 加密,从“可选配置”变成“基础标配”,已经是大势所趋。
“可是,搞 HTTPS 不是要花钱买 SSL 证书吗?还得自己手动配置,听说挺复杂的,我技术不太行啊……” 如果你有这样的顾虑,那么我要给你介绍两位“大救星”:
可以把 Let's Encrypt 想象成一个免费发放“网站安全身份证”的机构,而 Certbot 就是一个超级智能、任劳任怨的“代办机器人”,你只需要告诉它你的域名和服务器类型,它就能帮你跑前跑后,把申请、配置、续期这些繁琐事儿全自动搞定!
这篇教程,我就带你手把手地在你的 Linux 服务器上安装和使用 Certbot,分别为最常见的两大 Web 服务器——Nginx 和 Apache——配置免费的 Let's Encrypt SSL 证书。跟着步骤来,保证让你轻松给网站“上锁”!
在召唤 Certbot 这个“机器人”之前,请确保你的服务器已经满足以下基本条件:
yourdomain.com
),并且已经将这个域名(以及你想要一起加密的子域名,如 www.yourdomain.com
)的 DNS 解析正确地指向了你这台服务器的公网 IP 地址。
ping yourdomain.com
,看看返回的 IP 地址是不是你服务器的 IP。sudo
或 root
权限:因为安装软件和修改 Web 服务器配置需要管理员权限。
确认以上条件都满足了?很好,我们可以开始召唤 Certbot 了!
我们需要先把 Certbot 这个工具安装到服务器上。官方最推荐的安装方式是使用 Snap 包管理器,因为它能确保你使用的是最新版本的 Certbot,并且它自带所有依赖,能跨不同的 Linux 发行版保持一致性。
snapd
已安装并更新: 大多数现代 Ubuntu 系统自带 snapd
。对于其他系统,或者不确定的情况,可以执行相关安装和更新命令(具体命令请参考 Certbot 官网或你的发行版文档)。确保 snapd 核心是最新: [提示:请将以下代码片段复制并粘贴到 WordPress 的“代码”区块中] sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
certbot
命令: [提示:请将以下代码片段复制并粘贴到 WordPress 的“代码”区块中] sudo ln -s /snap/bin/certbot /usr/bin/certbot
安装完成后,你可以运行 certbot --version
来检查是否安装成功以及查看版本号。
如果你使用 Nginx,Certbot 的 Nginx 插件能帮你自动化大部分工作。
yourdomain.com
和 www.yourdomain.com
替换成你自己的域名。用多个 -d
参数指定所有需要包含的域名。 [提示:请将以下代码片段复制并粘贴到 WordPress 的“代码”区块中] sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
--nginx
参数告诉 Certbot 使用 Nginx 插件。listen 443 ssl http2
, ssl_certificate
, ssl_certificate_key
等)并设置 HTTP 到 HTTPS 的跳转。sudo nginx -t
。sudo systemctl reload nginx
。https://yourdomain.com
,检查地址栏的安全锁标志。
对于 Nginx 用户,过程通常非常顺畅。
如果你使用 Apache(服务名可能是 apache2
或 httpd
),过程类似,只需更换插件参数。
mod_ssl
模块已启用: 检查并启用 SSL 模块,然后重启 Apache。 [提示:请将以下代码片段复制并粘贴到 WordPress 的“代码”区块中] # Debian/Ubuntu sudo a2enmod ssl sudo systemctl restart apache2 # CentOS/RHEL (通常通过安装 mod_ssl 包启用) # sudo yum install mod_ssl -y # sudo systemctl restart httpd
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
--apache
参数告诉 Certbot 使用 Apache 插件。SSLEngine on
, SSLCertificateFile
, SSLCertificateKeyFile
等指令,并设置 HTTP 到 HTTPS 跳转。sudo apachectl configtest
(或 sudo httpd -t
)。sudo systemctl reload apache2
(或 httpd
)。https://yourdomain.com
,检查安全锁和证书。
使用 Apache 插件同样可以实现高度自动化。
证书拿到手了,但事情还没完。你需要了解证书放在哪,以及如何让它一直有效。
/etc/letsencrypt/live/yourdomain.com/
目录下(yourdomain.com
是你的主域名)。里面有几个关键文件(实际是符号链接):
cert.pem
: 服务器证书。chain.pem
: 中间证书链。fullchain.pem
: 完整证书链(服务器配置通常用这个)。privkey.pem
: 证书私钥(极其重要,保密!)。sudo certbot renew --dry-run
如果命令成功执行且没有报错,说明自动续期机制配置正常。# 检查 systemd 定时器 sudo systemctl list-timers | grep certbot # 或者检查 cron 任务 # sudo ls -l /etc/cron.d/certbot
只要你首次配置成功,并且 Certbot 能正常运行,你的证书就能持续自动续期,HTTPS 永不掉线。
有时你希望一张证书能保护主域名及其下所有一级子域名(如 blog.
, shop.
, api.
等)。这就是通配符证书。
Let's Encrypt 支持免费通配符证书,但它**只能通过 DNS-01 方式验证**,你需要证明你对域名的 DNS 解析有控制权。
如何获取?
sudo certbot certonly --manual --preferred-challenges=dns -d yourdomain.com -d '*.yourdomain.com' --server https://acme-v02.api.letsencrypt.org/directory
执行后,Certbot 会要求你手动去你的 DNS 服务商那里添加指定的 TXT 记录。验证过程需要人工干预,且无法自动续期。# 示例:使用 Cloudflare 插件 (需要先安装 certbot-dns-cloudflare 插件并配置凭证文件) sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini -d yourdomain.com -d '*.yourdomain.com' --server https://acme-v02.api.letsencrypt.org/directory
这种方式可以实现通配符证书的全自动获取和续期。配置相对复杂,请参考 Certbot 官方文档和你 DNS 服务商插件的具体说明。
获取通配符证书后,你还需要手动配置 Nginx/Apache 来使用它。
怎么样?是不是发现给网站加上那把象征安全的“小锁头”,其实并没有想象中那么复杂和昂贵?
有了 Let's Encrypt 提供的免费证书,再加上 Certbot 这个得力的“自动化助手”,无论是 Nginx 还是 Apache 用户,都可以非常轻松地为自己的网站启用 HTTPS 加密,并且享受自动续期的便利。这无疑是所有网站管理员和开发者的巨大福音。
现在,你已经掌握了使用 Certbot 为你的 Web 服务器配置 Let's Encrypt 证书的核心步骤。不要再犹豫了,赶紧行动起来,让你和你的用户都能享受更安全的网络浏览体验吧!让 HTTPS 成为我们每一个网站的基础配置,这在 2025 年,理应如此。