{{item}}
{{item.title}}
{{items.productName}}
{{items.price}}/年
{{item.title}}
部警SSL证书可实现网站HTTPS加密保护及身份的可信认证,防止传输数据的泄露或算改,提高网站可信度和品牌形象,利于SEO排名,为企业带来更多访问量,这也是网络安全法及PCI合规性的必备要求
前往SSL证书Certbot 是 Let's Encrypt 官方推荐的开源命令行证书管理工具,操作简洁、兼容性强,支持证书申请、部署、续费、校验全流程自动化。其中 Webroot 插件凭借无需占用 443 端口、无需停止网站服务、适配绝大多数 Web 服务器的优势,成为生产环境中最常用的证书申请方式。本文将从零开始,完整讲解 Certbot 工具部署、Webroot 插件原理、证书手动申请、站点配置、自动续费及故障排查全流程实操,帮助运维人员快速落地免费HTTPS证书部署。
Let's Encrypt证书属于域名验证型证书,仅验证域名所有权,不包含企业信息,适合个人网站、企业官网、业务测试站点等场景。其核心特点为完全免费、全网可信、自动签发,唯一限制是证书有效期仅 90 天,需要定期续费更新,可通过定时任务实现全自动续期,无需人工干预。同时该证书支持单域名、多域名证书,不支持泛域名证书,泛域名场景需采用 DNS 验证方式。
Certbot 是基于 ACME 协议开发的证书管理客户端,可与 Let's Encrypt证书服务器交互,自动完成域名验证、证书签发、文件生成等操作。Webroot 插件是 Certbot 主流的域名 HTTP 验证插件,核心原理简单高效:用户提前配置网站公开可访问的根目录,Certbot 会自动在该目录下创建临时验证文件,Let's Encrypt 服务器通过公网 HTTP 协议访问该文件,验证域名归属权,验证通过后即刻签发证书,并自动清理临时验证文件。
相较于 standalone 插件,Webroot 插件最大优势是无需占用 80/443 端口、无需暂停 Web 服务,不会造成网站中断,适配 Nginx、Apache、Caddy 等所有主流 Web 服务器,是生产环境最优选择。
在实操前需完成环境预检,规避证书申请失败问题,核心前置要求如下:
不同 Linux 发行版安装命令略有差异,以下提供主流系统的官方标准安装方式,安装完成后可全局调用 certbot 命令。
首先更新软件源,安装依赖组件,再通过 apt 包管理器安装 Certbot:
# 更新软件源
sudo apt update && sudo apt upgrade -y
# 安装certbot核心程序及webroot插件
sudo apt install certbot python3-certbot-webroot -yCentOS 系统需先启用 epel 源,再执行安装命令:
# 安装epel扩展源
sudo yum install epel-release -y
# 安装certbot及webroot插件
sudo yum install certbot python3-certbot-webroot -y安装完成后,执行版本查询命令,若输出版本信息则代表安装成功:
certbot --version本文采用纯命令行模式手动申请证书,全程无需交互界面,适配服务器终端操作,支持单域名、多域名证书申请。
Webroot 模式证书申请核心命令参数释义:
以域名 example.com、网站根目录 /var/www/html 为例,执行完整申请命令:
sudo certbot certonly --webroot -w /var/www/html -d example.com --email admin@example.com --agree-tos --no-eff-email同一证书可绑定主域名与 www 子域名,实现一个证书适配多个站点,只需叠加 -d 参数:
sudo certbot certonly --webroot -w /var/www/html -d example.com -d www.example.com --email admin@example.com --agree-tos --no-eff-email申请成功后,证书文件默认存储在 /etc/letsencrypt/live/域名/ 目录下,核心文件共4个,用途各不相同:
证书申请完成后,需手动修改 Nginx 配置文件,实现 HTTPS 加密访问,同时配置 HTTP 强制跳转 HTTPS,契合安全合规要求。
server {
listen 80;
server_name example.com www.example.com;
# 强制HTTP跳转HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
# 配置SSL证书路径
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# 基础SSL安全配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
# 网站根目录配置
root /var/www/html;
index index.html index.php;
}保存配置文件后,先校验 Nginx 配置语法无误,再重启服务:
# 校验配置
sudo nginx -t
# 重启服务
sudo systemctl restart nginx重启完成后,通过浏览器访问域名,地址栏显示安全锁标识,即为 HTTPS 配置成功。
Let's Encrypt证书有效期仅90天,手动续费易遗漏,Certbot 自带自动续费功能,配合系统定时任务可实现永久自动续期。
先执行续费命令测试环境是否正常,系统会自动检测证书有效期,临近过期则自动更新:
sudo certbot renew --webroot通过 crontab 设置定时任务,每日凌晨自动检测续费,同时重启 Nginx 生效配置:
# 编辑定时任务
crontab -e
# 添加以下内容
0 3 * * * sudo certbot renew --webroot --quiet && sudo systemctl restart nginx该任务每日凌晨3点执行证书检测续期,--quiet 参数静默运行,无多余日志输出,续期成功后自动重启 Nginx,确保新证书即时生效。
故障原因多为80端口未放行、网站根目录配置错误、域名解析未生效、站点存在全局 HTTP 重定向拦截验证文件。
常见原因是定时任务未生效、证书目录权限不足、Nginx 重启失败。
多为未配置完整证书链,仅配置了 cert.pem 未配置 fullchain.pem。
基于 Certbot 命令行 + Webroot 插件的Let's Encrypt证书部署方案,具备免费、稳定、无服务中断、适配性广的核心优势,完全满足绝大多数个人及中小企业网站的 HTTPS 加密需求。整套方案核心亮点在于无需改动业务服务、全程可自动化运维,通过简单的命令即可完成证书申请、部署、续费全流程操作。
Dogssl.com拥有20年网络安全服务经验,提供构涵盖国际CA机构Sectigo、Digicert、GeoTrust、GlobalSign,以及国内CA机构CFCA、沃通、vTrus、上海CA等数十个SSL证书品牌。全程技术支持及免费部署服务,如您有SSL证书需求,欢迎联系!