🌐 阿里云 Linux 服务器 Let's Encrypt 免费 SSL 证书完整部署指南

作者:纯粹的热爱日期:2025/11/23

🌐 阿里云 Linux 服务器 Let's Encrypt 免费 SSL 证书完整部署指南

适用系统:Alibaba Cloud Linux 3(兼容 CentOS/RHEL)
Web 服务器:Nginx
更新时间:2025 年 11 月
作者:DevOps Guide


✅ 一、前提条件

在开始前,请确保满足以下条件:

要求说明
1. 阿里云 ECS 实例已创建,操作系统为 Alibaba Cloud Linux 3
2. 域名已解析yourdomain.com 的 A 记录指向 ECS 公网 IP
3. 安全组开放端口入方向允许 80 (HTTP) 和 443 (HTTPS)(来源:0.0.0.0/0)
4. 域名备案(中国大陆地域)若 ECS 位于中国内地(如杭州、北京),必须完成 ICP 备案
5. 已安装 Nginx且能通过 http://yourdomain.com 访问

🔍 验证域名解析:

1dig yourdomain.com +short
2# 应返回你的 ECS 公网 IP
3

🚀 二、完整操作流程

步骤 1:安装 Nginx(如未安装)

1# 安装 Nginx
2sudo dnf install -y nginx
3
4# 启动并设置开机自启
5sudo systemctl start nginx
6sudo systemctl enable nginx
7

步骤 2:配置 Nginx 站点(添加 server_name)

1sudo vim /etc/nginx/conf.d/yourdomain.com.conf
2

写入以下内容:

1server {
2    listen 80;
3    server_name yourdomain.com;  #  必须包含你要申请证书的域名
4    root /usr/share/nginx/html;
5    index index.html;
6}
7

测试并重载:

1sudo nginx -t
2sudo systemctl reload nginx
3

✅ 此时应能通过浏览器访问 http://yourdomain.com


步骤 3:安装 Certbot

1# 安装 EPEL 仓库
2sudo dnf install -y epel-release
3
4# 安装 Certbot  Nginx 插件
5sudo dnf install -y certbot python3-certbot-nginx
6

步骤 4:申请并安装 SSL 证书

1sudo certbot --nginx -d yourdomain.com
2

执行时会提示:

  • 输入邮箱(用于过期提醒)
  • 同意服务条款(按 A
  • 是否重定向 HTTP → HTTPS(建议选 Yes

✅ 成功后,Nginx 会自动启用 HTTPS,访问 https://yourdomain.com 应显示安全锁图标。


步骤 5:验证证书信息

1sudo certbot certificates
2

输出示例:

1Certificate Name: yourdomain.com
2    Expiry Date: 2026-02-20 12:34:56+00:00 (VALID: 89 days)
3    Certificate Path: /etc/letsencrypt/live/yourdomain.com/fullchain.pem
4    Private Key Path: /etc/letsencrypt/live/yourdomain.com/privkey.pem
5

步骤 6:配置自动续期(关键!)

6.1 测试续期流程(安全,不会真续)
1sudo certbot renew --dry-run
2

✅ 应看到:Congratulations, all simulated renewals succeeded.

6.2 设置定时任务
1sudo crontab -e
2

在打开的编辑器中i 进入插入模式,粘贴以下内容:

10 2 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"
2

保存退出:

  • ESC
  • 输入 :wq 并回车
6.3 验证 cron 是否设置成功
1sudo crontab -l
2

应输出:

10 2 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"
2

🔍 三、常见问题排查

❌ 问题 1:申请证书时超时(Timeout during connect)

错误示例

1Fetching http://yourdomain.com/.well-known/acme-challenge/...: Timeout
2

原因与解决

原因解决方案
阿里云安全组未开 80 端口控制台 → 安全组 → 添加 80 入站规则
域名未备案(中国内地 ECS)备案域名,或改用 DNS 验证(见附录)
DNS 未解析到公网 IP检查 A 记录:dig yourdomain.com
本地防火墙阻止检查:sudo firewall-cmd --list-ports(Alibaba Cloud Linux 默认关闭)

❌ 问题 2:Certbot 找不到 server_name

错误No matching server blocks located

解决

  • 确保 Nginx 配置中 server_name 精确包含 yourdomain.com
  • 配置文件必须在 /etc/nginx/conf.d/ 或被 nginx.confinclude 包含

❌ 问题 3:自动续期失败

排查步骤

1# 查看 cron 执行日志
2sudo grep CRON /var/log/cron
3
4# 查看 certbot 日志
5sudo tail -n 20 /var/log/letsencrypt/letsencrypt.log
6
7# 手动运行续期(不静默)
8sudo certbot renew
9

📎 附录:替代方案 —— DNS 验证(无需 80 端口)

适用于:未备案域名无法开放 80 端口 的场景

步骤 A:获取阿里云 AccessKey

  1. 进入 RAM 控制台
  2. 创建用户,授权 AliyunDNSFullAccess
  3. 获取 AccessKey IDAccessKey Secret

步骤 B:配置 DNS 插件

1# 安装插件
2sudo dnf install -y certbot-dns-alidns
3
4# 创建凭证文件
5mkdir -p ~/.secrets
6cat > ~/.secrets/alidns.ini <<EOF
7dns_alidns_access_key = YOUR_ACCESS_KEY_ID
8dns_alidns_secret_key = YOUR_ACCESS_KEY_SECRET
9EOF
10
11chmod 600 ~/.secrets/alidns.ini
12

步骤 C:申请证书

1sudo certbot certonly \
2  --dns-alidns \
3  --dns-alidns-credentials ~/.secrets/alidns.ini \
4  -d yourdomain.com
5

步骤 D:手动配置 Nginx HTTPS

编辑 /etc/nginx/conf.d/yourdomain.com.conf,添加:

1server {
2    listen 443 ssl;
3    server_name yourdomain.com;
4    root /usr/share/nginx/html;
5
6    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
7    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
8}
9

重载 Nginx:

1sudo nginx -t && sudo systemctl reload nginx
2

⚠️ DNS 验证方式 仍需配置自动续期 cron(同上)


✅ 四、总结

步骤命令/操作状态
1. 安装 Nginxsudo dnf install nginx
2. 配置站点创建 /etc/nginx/conf.d/*.conf
3. 安装 Certbotsudo dnf install certbot...
4. 申请证书sudo certbot --nginx -d yourdomain.com
5. 设置自动续期sudo crontab -e + 添加任务
6. 测试续期sudo certbot renew --dry-run

🎉 完成!你的网站现在拥有免费、自动更新的 HTTPS 加密。


🔗 官方参考

💡 提示:每 3 个月手动运行一次 sudo certbot certificates 检查到期时间,确保万无一失。


🌐 阿里云 Linux 服务器 Let's Encrypt 免费 SSL 证书完整部署指南》 是转载文章,点击查看原文


相关推荐


前端可视化家庭账单:用 ECharts 实现支出统计与趋势分析
fruge3652025/11/21

前端可视化家庭账单:用 ECharts 实现支出统计与趋势分析 在家庭财务管理中,直观地看懂钱花到了哪里、花得是否稳定,是提高消费意识与优化预算的关键。本文以 ECharts 为核心,构建一个可视化的家庭账单分析:包括支出分类统计、月度趋势分析、交互筛选与性能优化建议,帮助你在浏览器端快速落地一个实用的可视化面板。 适用场景 需要按类别统计支出占比并快速定位高频支出项需要观察月度支出变化趋势并识别异常波动希望在不引入后端的前提下,完成本地或前端的数据分析与展示 数据模型设计 为后续统计与可视化,


分布式专题——56 微服务日志采集与分析系统实战
失散132025/11/19

1 为什么要使用 ELK 随着企业信息化进程加速,日志数据呈现量急剧增加、来源多样、格式复杂的特点,传统日志管理方式已难以满足需求,这是引入ELK的核心背景; ELK(ElasticSearch、Logstash、Kibana)的由三个组件构成,各自承担关键功能,形成高效的日志管理方案: Elasticsearch:提供强大的分布式搜索能力,支撑日志的快速检索; Logstash:具备灵活的数据采集与处理功能,负责日志的收集和预处理; Kibana:提供直观的数据可视化界面,将


如果让我从头再来学习并发编程
桦说编程2025/11/18

大学时,我学习了一本国外的教科书,书名叫做《计算机网络——自顶向下方法》,这本书改变了我看待学习的角度。学习的顺序不是一成不变的,常规的路线通常从底层学习,这本书从应用层面入手,逐步讲解到底层,以一种对常规学习路线相反的方向学习,在我看来恰恰学习计算机网络最轻松上手的路径。很多时候我们追求一步到位,鞭辟入里的理解,反而忽略对于初学者,最佳的学习路线往往是兴趣与试错、感性和求索交织的,认识是逐渐深刻的。 知之者往往陷入知识的诅咒,知道的内容很难遗忘,甚至忘记了自己也是从不理解到懂的。有些书籍和文章


Python 的内置函数 setattr
IMPYLH2025/11/17

Python 内建函数列表 > Python 的内置函数 setattr Python 的内置函数 setattr() 用于动态设置对象的属性值。该函数接受三个参数:对象、属性名称字符串和属性值。当我们需要在运行时为对象添加或修改属性时,setattr() 提供了灵活的操作方式。 基本语法: setattr(object, attribute_name, value) 详细说明: 参数解析: object:需要设置属性的目标对象attribute_name:字符串形式的属性名


Bash 的 chown 命令
hubenchang05152025/11/16

#Bash 的 chown 命令 chown [OPTION]... [OWNER][:[GROUP]] FILE... 功能 修改文件的所有者和所属组。 类型 可执行文件(/usr/bin/chown),属于 coreutils。 参数 OPTION 选项: -c, --changes - 仅对发生变化的文件打印详细信息 -f, --silent, --quiet - 忽略大部分错误信息 -v, --verbose - 打印详细信息 --dereference - 影响符号链接引用的源文


【软件测试】《集成测试全攻略:Mock/Stub 原理 + Postman/JUnit/TestNG 实战》
云知谷2025/11/15

集成测试:一场“团队协作”的精彩大戏! 想象一下,你正在筹备一场超级英雄电影的首映礼!每个超级英雄(比如钢铁侠、美国队长、雷神)都是独立的组件,他们各自的能力(功能)都经过了严格测试(单元测试),证明他们“单兵作战”很强。 但是!电影上映时,他们必须一起合作——钢铁侠开战甲,美国队长指挥战术,雷神召唤闪电,才能打败灭霸(系统级问题)。如果他们配合不好(比如钢铁侠的战甲和美国队长的盾牌不兼容,或者雷神的闪电把战甲炸了),那电影就砸了! 这时候,集成测试(Integration Testing


DeepSeek-OCR实战(01):基础运行环境搭建-Ubuntu
paopao_wu2025/11/13

DeepSeek-OCR实战是一个系列文章,包含了从基础运行环境搭建到应用接入全过程。本章为:基础运行环境搭建,操作系统采用 Ubuntu Server 24 环境版本ubuntu-24.04.3 Serverrelease 10.0Cuda11.8显卡 RTX 2080 Ti 22G驱动 NVIDIA-Linux-x86_64-580.105.08conda25.9.1git2.47.3 1.操作系统基础安装 安装 Ubuntu 24 Server 版本后(全部默认安装),查看一下磁盘


圆桌论坛精华实录 | AI是重构运维逻辑的颠覆性革命?博睿数据与行业大咖亲授“AI+可观测性”的破局之道
Bonree博睿数据2025/11/12

全文约6500字  阅读时间约15分钟。 当前,人工智能正处于高速发展阶段,以前所未有的深度与广度重塑商业规则,推动企业数字化转型从规模化扩张迈入精细化深耕。面对这场汹涌而来的智能变革,运维领域正面临一道核心命题:AI究竟是提升效率的辅助工具,还是重构运维逻辑的颠覆性革命? 国内金融、制造等关键行业已步入数字化深水区,却普遍陷入运维复杂度激增、故障定位滞后、数据价值难以转化等行业焦虑。如何让AI技术真正落地运维场景?如何通过可观测性打通全链路数据孤岛?如何平衡技术创新与业务实用价值?


对于数据结构:堆的超详细保姆级解析——下(堆排序以及TOP-K问题)
ShineWinsu2025/11/10

开篇介绍: hello 大家,我们又见面了,在上一篇博客中,我们共同探索了如何实现堆这么一个数据结构,相信大家经过上篇博客的学习,对堆的了解程度以及掌握程度,都有了极大的水平提升。 那么堆,有什么用呢?首先,作为一个数据结构,它肯定具有存储数据的功能,这是毋庸置疑的,但是呢,我们知道,堆有大堆和小堆之分,那么那么,这一个知识点,蕴含着什么秘密呢? 诶,不错,就是我们标题所说的——堆排序,我们之前学过了冒泡排序以及qsort函数排序,但是呢说实话,这两种排序方式,效率都不高,说难听一点就是在


【Linux】进程初阶(1)——基本进程理解
终焉代码2025/11/8

目录 前言 1.1进程基本理解 1.2进程描述 1.3查看进程 1.4通过系统调用的基本进程操作 1.4.1通过系统调用获取pid 1.4.2通过系统调用创建进程 前言 操作系统对计算机软件与硬件进行管理的方式是先描述再组织,而PCB就是那个"描述",那到底什么是PCB?PCB又在描述什么呢?更多Linux学习内容看准Linux专栏 1.1进程基本理解 在操作系统中,我们运行的一个个软件本质上都是程序。例如我们在windows上打开浏览器时,本质是

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2025 聚合阅读