一句话版本
在境内服务器上,用域名对外提供网站服务之前,必须先完成 ICP 备案。
这不是阿里云的规矩,是《互联网信息服务管理办法》的要求。备案这件事,看起来是行政流程,但它会直接决定你的技术方案能走哪条路。
备案到底在备什么
很多人以为备案是"给域名做个认证",其实不是。备案备的是主体和网站的关系:
| 备的东西 | 含义 |
|---|---|
| 主体备案 | 你这个人(或这家公司)的真实身份 |
| 网站备案 | 你打算用哪些域名,在哪台服务器上,提供什么内容 |
| 接入信息 | 你的服务器托管在哪家(阿里云 / 腾讯云 / …) |
所以备案是主体 + 域名 + 服务器 + 内容四者的一次绑定。任一项变了都要去更新,比如服务器换了厂商、域名新增了、主体从个人变成公司。
顺带一提:主体备案的证件是绑定的。个人备案不能挂公司名下,企业备案需要营业执照,对公打款验证。个人备案后续转企业备案,很多省份要重新走一遍流程。
为什么备案期间不能用域名
关键在于境内服务器的流量需要可追溯。而域名是"可自由解析"的——如果不需要备案就能用域名指向境内服务器,那随便一个境外网站都能解析到国内的机器上,产生内容却完全无法追责。
所以规则是:域名 → 境内服务器的解析,必须发生在备案完成之后。
这带来几个非常具体的影响:
1. 服务器可以先买,网站不能先上
域名买在境外(比如 Cloudflare、GoDaddy)也一样。关键不是域名注册商,是这台服务器的地理位置。服务器在境内,就必须在境内接入商处备案。
2. 备案期间,网站只能用 IP 访问
这就是本站现在的状态:
http://120.27.22.144 ← 可以访问
https://你的域名 ← 不行(域名还没解析,443 也没开)
很多人会问:用 IP 访问算不算"提供服务"?
算,但它是允许的。规则约束的是"用域名提供服务"这件事本身。IP 直访在技术上不构成"通过域名提供互联网信息服务",所以备案期间可以正常跑。
不过实话说,IP 直访体验很差:没有 HTTPS、URL 没法被搜索收录、分享出去别人也不愿意点。所以备案期的 IP 站,本质上只是个开发环境。
3. 证书签不下来
Let's Encrypt 的 HTTP-01 验证需要通过域名访问 /.well-known/acme-challenge/。域名都还没解析,验证自然过不去。
所以备案是 HTTPS 的前置条件,两件事没法并行。这也是为什么本站的 HTTPS 配置只能等备案。
补充一个细节:Let's Encrypt 在 2015 年就取消了 IP 地址证书的签发。所以哪怕你打算一直用 IP 访问,HTTPS 这条路也走不通——必须是域名。
备案要多久
实际流程是这样:
① 域名实名认证 (几小时到 1 个工作日)
↓
② 在接入商控制台提交备案 (填写主体、网站、服务内容、域名)
↓
③ 接入商初审 (1-3 个工作日)
↓
④ 管局审核 (各省通信管理局,通常 5-20 个工作日)
↓
⑤ 备案号下发 (短信通知)
↓
⑥ 开始解析域名 + 配 HTTPS + 页脚展示备案号
管局审核的耗时是最大的变量,各省差异很大,短的三五天,长的能到二十个工作日。如果期间主体信息或域名有问题,会被打回重来。
几个常见被打回的原因
- 域名实名认证的主体,和备案主体不一致(最常见)
域名在个人名下、备案想填公司;或者域名压根没做实名认证
- 网站名称不合规
含有"第一""最""官方"这类词,或者跟已有网站重名
- 服务内容选错
个人备案选成了"企业网站"或"其他"里不该选的项
- 手机号/邮箱不常用
审核期间收不到验证码、短信
备案通过之后要做的事
别以为批下来了就完事了,还有三件"限时"的事:
① 页脚展示 ICP 备案号(必须)
页脚要有备案号,并且链接到 https://beian.miit.gov.cn/。这一条是硬性要求,检查起来很机械。
本文所在站点的页脚就会放这个。
② 公安联网备案(30 日内)
这个很多人不知道,也不算"备案",但同样有明确期限:网站开通之日起 30 日内,到全国互联网安全管理服务平台提交。
公安备案通过后拿到的备案号,也要放在页脚。
③ 域名解析 + 配 HTTPS
备案号下来当天就可以做:
- 域名加 A 记录,指向服务器公网 IP
- 申请 SSL 证书
- 开启 HTTP → HTTPS 强制跳转
- 把 Halo 后台的"站点地址"改成
https://你的域名
第 4 步经常被忘。改了之后,Halo 才会用正确域名生成文章里图片和链接的绝对路径——否则页面里会出现 http://120.27.22.144/... 这种混合链接,既难看又影响 SEO。
备案期能做什么
不能上线 ≠ 不能干活。备案的这段时间其实很适合做这些:
- [x] 装好程序、配好服务器(本文的 Nginx 六个坑就是这段时间排掉的)
- [x] 写内容(本站前几篇文章都是备案期写的)
- [x] 做视觉和交互
- [x] 配好自动备份,别等上线后才发现数据没备份过
- [x] 把 HTTPS 脚本先在本地/测试环境演练一遍,别等 DNS 一生效就现写现跑
最后一条尤其重要。备案通过的那一刻通常很兴奋,然后就会想立刻上线。 而 DNS 生效有延迟、证书签发有等待、脚本可能有坑——这时候最容易出乱子。
留一两天缓冲,把所有东西都提前跑通,DNS 一解析,切换就是一条命令的事。
小结
| 问题 | 答案 |
|---|---|
| 备案在备什么 | 主体 + 域名 + 服务器 + 内容的绑定 |
| 为什么不能用域名 | 境内服务器必须先备案,才能用域名提供服务 |
| 备案期能访问吗 | 能,用 IP;但这只是开发环境 |
| 多久 | 3 天到 3 周不等,看各省管局 |
| 通过后还要做什么 | 页脚挂备案号、30 日内公安备案、配 HTTPS、改 Halo 站点地址 |
备案是所有国内个人站点的固定成本。它烦,但也就那一次。
熬过去之后,剩下的就是自由创作了。