ICP 备案通过后:阿里云 ECS 建站完整配置与 Nginx HTTPS 部署
收到工信部备案通过的短信后,网站才能正式上线。这篇从域名解析开始,走完 Nginx 安装、HTTPS 证书申请、反代配置和备案号展示的完整流程。
如果还没完成 ICP 备案,先看 阿里云 ICP 备案全流程。
第一步:域名解析到 ECS
备案通过前不能做这一步——域名解析到境内服务器被检测到会影响审核。收到通过短信后再操作。
进入阿里云域名控制台 → 解析设置,添加两条 A 记录:
| 记录类型 | 主机记录 | 记录值 | TTL |
|---|---|---|---|
| A | @ | ECS 公网 IP | 10 分钟 |
| A | www | ECS 公网 IP | 10 分钟 |
TTL 先设 10 分钟,调试期间改起来快。上线稳定后改为 10 分钟或更长。
# 验证解析是否生效(本地执行)dig +short your-domain.com# 输出 ECS 公网 IP 说明解析已生效第二步:安装 Nginx
SSH 登录 ECS,安装 Nginx:
sudo apt updatesudo apt install -y nginx
# 确认 Nginx 已启动sudo systemctl status nginx# 看到 active (running) 说明正常
# 设置开机自启sudo systemctl enable nginx此时用浏览器访问 http://your-domain.com,能看到 Nginx 默认欢迎页,说明域名解析和 Nginx 均正常。
第三步:申请阿里云免费 SSL 证书
阿里云提供免费的 DV 证书(有效期 3 个月,可以重复申请),不需要信用卡。
- 进入阿里云控制台,搜索 SSL 证书
- 点击免费证书,选个人测试证书(免费版)
- 填入域名(
your-domain.com),证书类型选 RSA 2048 - 验证方式选文件验证或DNS 验证
DNS 验证方式(推荐)
选 DNS 验证后,阿里云给出一条 TXT 记录:
| 记录类型 | 主机记录 | 记录值 |
|---|---|---|
| TXT | _dnsauth | 阿里云给出的验证值 |
在域名解析控制台添加这条记录,等待几分钟后回到证书控制台点验证。验证通过后证书签发,通常几分钟内完成。
下载并上传证书
证书签发后,选 Nginx 格式下载,得到两个文件:
your-domain.com.pem # 证书链your-domain.com.key # 私钥上传到 ECS:
# 本地执行,替换路径和 IPscp your-domain.com.pem root@your-ecs-ip:/etc/nginx/ssl/scp your-domain.com.key root@your-ecs-ip:/etc/nginx/ssl/
# 在 ECS 上创建目录(如果不存在)sudo mkdir -p /etc/nginx/sslsudo chmod 700 /etc/nginx/ssl第四步:配置 Nginx
静态网站
适合 Mintlify 导出的静态文件、纯 HTML/CSS 站点:
sudo nano /etc/nginx/sites-available/your-domain.comserver { listen 80; server_name your-domain.com www.your-domain.com; return 301 https://your-domain.com$request_uri;}
server { listen 443 ssl; server_name your-domain.com;
ssl_certificate /etc/nginx/ssl/your-domain.com.pem; ssl_certificate_key /etc/nginx/ssl/your-domain.com.key; ssl_protocols TLSv1.2 TLSv1.3;
root /var/www/your-domain.com; index index.html;
location / { try_files $uri $uri/ =404; }}
# www 跳转到根域名server { listen 443 ssl; server_name www.your-domain.com;
ssl_certificate /etc/nginx/ssl/your-domain.com.pem; ssl_certificate_key /etc/nginx/ssl/your-domain.com.key;
return 301 https://your-domain.com$request_uri;}反向代理(Node.js / Python 应用)
应用监听本地端口(如 3000),Nginx 做反代:
server { listen 80; server_name your-domain.com www.your-domain.com; return 301 https://your-domain.com$request_uri;}
server { listen 443 ssl; server_name your-domain.com;
ssl_certificate /etc/nginx/ssl/your-domain.com.pem; ssl_certificate_key /etc/nginx/ssl/your-domain.com.key; ssl_protocols TLSv1.2 TLSv1.3;
location / { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }}启用配置
# 启用站点配置sudo ln -s /etc/nginx/sites-available/your-domain.com /etc/nginx/sites-enabled/
# 测试配置语法sudo nginx -t# 输出 syntax is ok 和 test is successful 才能继续
# 重载 Nginxsudo systemctl reload nginx第五步:展示备案号(合规要求)
备案通过后,网站首页底部必须展示工信部备案号,并链接到 beian.miit.gov.cn。这是工信部的强制要求,不展示属于违规,阿里云会定期巡检。
在页面 HTML 的 <footer> 里添加:
<footer> <a href="https://beian.miit.gov.cn" target="_blank" rel="noopener"> 京ICP备XXXXXXXX号 </a></footer>备案号格式为省份缩写 + ICP备 + 数字 + 号,在阿里云备案控制台或工信部网站 beian.miit.gov.cn 上可以查到你的备案号。
如果网站还涉及公安备案(有互动功能的网站需要),在备案号旁边同样展示公安备案号和图标。
验证清单
# 1. HTTP 是否跳转到 HTTPScurl -I http://your-domain.com# 应看到 301 和 Location: https://your-domain.com/
# 2. HTTPS 是否正常curl -I https://your-domain.com# 应看到 200
# 3. www 是否跳转到根域名curl -I https://www.your-domain.com# 应看到 301 和 Location: https://your-domain.com/
# 4. 证书是否有效curl -vI https://your-domain.com 2>&1 | grep -E "SSL|subject|expire"常见问题
Nginx 配置测试通过但网站打不开,报 502
502 表示 Nginx 能收到请求,但后端应用没在运行或端口不对。检查:① 应用是否在运行(ps aux | grep node);② 应用监听的端口是否和 proxy_pass 里一致;③ ECS 安全组是否放行了 80 和 443 端口。
阿里云 ECS 安全组需要放行哪些端口?
最少需要放行:22(SSH)、80(HTTP)、443(HTTPS)。在 ECS 控制台 → 安全组 → 入方向,添加这三条规则。安全组和 ufw 是两层控制,两处都要放行。
免费 SSL 证书 3 个月后怎么续期?
阿里云免费证书到期前 30 天会发邮件提醒。到期前重新申请一张新证书,下载后替换 /etc/nginx/ssl/ 下的两个文件,执行 sudo systemctl reload nginx 即可。整个操作不超过 10 分钟,不影响网站运行。
备案号在哪里查?
登录阿里云备案控制台,在”我的备案”列表里找到对应域名,备案号显示在域名旁边。也可以在工信部官网 beian.miit.gov.cn 搜索域名查询。
网站上线后阿里云会检查备案号展示吗?
会。阿里云有自动巡检系统,定期抓取页面检查备案号是否展示。未展示的会收到整改通知,限期内不整改可能被暂停服务或注销备案。
本文最后更新于 2026-04,测试环境:Ubuntu 22.04 LTS,Nginx 1.24。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!
评论区
滚动到评论区附近或点击按钮后,再加载 Waline 脚本与请求。
云梯建站笔记