技术研讨
2025-12-22
技术研讨
0
请注意,本文编写于 163 天前,最后修改于 161 天前,其中某些信息可能已经过时。

目录

一、本次教程环境说明
二、开始前的准备工作
1、已具备条件
三、安装 Nginx(Web 服务器)
四、安装 Certbot + Nginx 插件(重点)
五、Certbot 自动申请 HTTPS 证书(核心步骤)
六、Certbot 自动做了哪些事情?
七、验证 HTTPS 是否生效
八、SSL 证书自动续期配置
九、常见问题与解决方案(FAQ)
❌ 1. 端口未开放
❌ 2. Nginx 配置错误
❌ 3. 域名未解析或解析未生效
十、总结

在服务器上部署网站后,配置 HTTPS 已成为刚需。

本文将手把手教你如何在服务器上:

  • 安装 Nginx Web 服务器

  • 安装 Certbot + Nginx 插件

  • 使用 一条命令自动申请 HTTPS 证书

  • 开启 SSL 证书自动续期


一、本次教程环境说明

  • 操作系统:Ubuntu 20.04 / 22.04 / 24.04
  • SSH工具: FinalShell 安装教程
  • Web 服务:Nginx
  • SSL 工具:Certbot(Let's Encrypt)
  • 证书类型:免费 SSL / HTTPS
  • 验证方式:HTTP-01(Nginx 自动配置)

二、开始前的准备工作

1、已具备条件

  • 你有一台 公网 Ubuntu 服务器
  • 已购买并解析好 域名(A 记录指向服务器 IP)
  • 服务器可访问 80 / 443 端口

域名未解析成功将导致 Certbot 验证失败

三、安装 Nginx(Web 服务器)

如果你的服务器尚未安装 Nginx,执行:

bash
sudo apt update sudo apt install -y nginx

启动并设置开机自启:

bash
sudo systemctl start nginx sudo systemctl enable nginx

注意

nginx的安装到此结束

四、安装 Certbot + Nginx 插件(重点)

Certbot 是 Let's Encrypt 官方推荐的证书管理工具,
python3-certbot-nginx 插件可以 自动修改 Nginx 配置

bash
sudo apt install certbot python3-certbot-nginx

安装完成后,检查版本:

bash
certbot --version

五、Certbot 自动申请 HTTPS 证书(核心步骤)

一条命令实现以下功能:

  • 自动验证域名所有权

  • 自动申请免费 SSL 证书

  • 自动配置 Nginx HTTPS

  • 可选强制 HTTP 跳转 HTTPS

  • 自动 reload Nginx

推荐命令(单域名)

bash
sudo certbot --nginx -d 你的域名

示例:

bash
sudo certbot --nginx -d example.com

多域名 / www 支持

bash
sudo certbot --nginx -d example.com -d www.example.com

申请过程中会提示:

  1. 输入邮箱(用于证书到期提醒)
  2. 同意 Let's Encrypt 服务条款
  3. 是否强制 HTTP → HTTPS(强烈建议选择是)

成功后会看到:

bash
Congratulations! You have successfully enabled HTTPS

🎉 HTTPS 已完成配置!

六、Certbot 自动做了哪些事情?

使用 --nginx 模式后,Certbot 会自动:

  • 扫描 Nginx 站点配置

  • 写入 SSL 配置块

  • 设置证书路径:

bash
/etc/letsencrypt/live/你的域名/
  • 自动重载 Nginx

无需手动修改任何配置文件。

七、验证 HTTPS 是否生效

方法一:浏览器访问

bash
https://你的域名

地址栏出现 🔒 即表示成功。

方法二:命令行验证

bash
curl -I https://你的域名

返回 200 或 301 即为正常。

八、SSL 证书自动续期配置

Let's Encrypt 证书有效期 90 天,Certbot 会自动续期。

1️⃣ 查看自动续期任务

bash
systemctl list-timers | grep certbot

通常会看到:

bash
certbot.timer

2️⃣ 手动测试续期(推荐)

bash
sudo certbot renew --dry-run

若无报错,说明自动续期配置正常。

九、常见问题与解决方案(FAQ)

❌ 1. 端口未开放

bash
sudo ufw allow 80 sudo ufw allow 443 sudo ufw reload

❌ 2. Nginx 配置错误

bash
sudo nginx -t

修复错误后再运行 Certbot。

❌ 3. 域名未解析或解析未生效

等待 DNS 生效(通常 5–30 分钟)

确认未使用内网 IP

十、总结

通过 Nginx + Certbot + Let's Encrypt,你可以在服务器上:

免费获取 HTTPS / SSL 证书

一条命令完成自动配置

自动续期,长期免维护

核心命令回顾

bash
sudo apt install certbot python3-certbot-nginx
bash
sudo certbot --nginx -d 你的域名
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:猪聪聪

联系邮箱::[email protected]

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!