Files
Hugo/content/blog/site-launch-guide.md
T

287 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "域名折腾记录"
date: 2026-05-21T15:00:00+08:00
draft: false
description: "基于腾讯云的域名申请、工信部 ICP 备案、SSL 证书部署、Nginx HTTPS 配置、公安备案的全流程实操记录。"
tags:
- 教程
- 建站
- Nginx
- HTTPS
poet: |
千门万户曈曈日,
总把新桃换旧符。
——王安石,中国,1021–1086
---
把个人网站从 `http://IP` 变成一个正经的 `https://域名`,中间要走的路比想象中多。这篇文章记录我的实际操作过程,供有同样需求的朋友参考。
## 前提
- 服务器:腾讯云 Lighthouse,Ubuntu 24.04,4 核 4G
- 网站:Hugo 静态博客,Nginx 提供服务
- 域名注册商:腾讯云
## 一、域名申请
**控制台路径**:腾讯云控制台 → 产品 → 域名注册 → 域名注册
在腾讯云域名注册页面搜索想要的域名,`.com` 早就被抢光了,`.net` 还有一些。我选了 `fukun.net`,首年 90 元。
购买后进入 **控制台 → 产品 → 域名注册 → 我的域名**,找到刚买的域名,点击「实名认证」。上传身份证正反面,审核大约半小时到两小时。通过后域名状态变为「正常」。
回到我的域名页面,点击域名进入 **域名管理 → DNS 解析 → 添加记录**:
| 主机记录 | 记录类型 | 记录值 |
|---------|---------|--------|
| @ | A | 62.234.90.54 |
| www | A | 62.234.90.54 |
TTL 默认 600(即 10 分钟)即可。关于 TTL 的设置经验:
- **日常使用**:600 足够。DNS 修改后最迟 10 分钟全球生效,实际通常更快。
- **迁移前夕**:如果计划更换服务器 IP,提前 24 小时把 TTL 降到 60–120,这样迁移时 DNS 切换更快。
- **不要设太短**:TTL 过短(如 10 秒)会增加 DNS 查询量,对个人站点没必要。
- **不要设太长**:TTL 过长(如 86400)会导致修改后一天才能生效,出问题时无法快速切换。
生效很快,几分钟后 `ping fukun.net` 就能看到正确 IP。
## 二、工信部 ICP 备案
这是整个流程里最耗时的环节。根据《互联网信息服务管理办法》,中国大陆境内提供互联网信息服务的网站必须取得 ICP 备案号。
**控制台路径**:腾讯云控制台 → 产品 → 网站备案 → 开始备案
### 操作流程
1. 进入备案系统,选择「首次备案」
2. 填写主体信息(个人姓名、身份证号、详细通信地址)
3. 填写网站信息:
- 网站名称:注意不能包含「中国」「中华」等字样,个人备案也不能用太过商业化的名称(我填了「FuKun 技术笔记」)
- 网站域名:`fukun.net`
- 网站简介:如实描述,不要写「论坛」「商城」等需要前置审批的内容
4. 上传证件照片(身份证正反面、手持身份证照)
5. 进行人脸识别验证(微信扫码完成)
6. 提交初审
### 时间线
| 阶段 | 耗时 | 说明 |
|------|------|------|
| 腾讯云初审 | 1 个工作日 | 审核材料完整性,不合格会退回修改 |
| 提交管局 | 3 个工作日 | 初审通过后提交至通信管理局 |
| 工信部短信核验 | 即时 | 收到短信后 24 小时内点击链接确认 |
| 通信管理局审核 | 10–15 个工作日 | 各地管局速度不同,广东大约 12 天 |
我从提交到拿到备案号大约用了 **12 个工作日**。通过后会在 **控制台 → 网站备案 → 我的备案** 看到备案号和电子证书。
### 关键注意事项
- 备案期间网站**必须关闭**(Nginx 先别配域名,或者返回 403)
- 个人备案不得涉及企业、商品、新闻等内容
- 备案号需要在网站底部展示,链接到 `beian.miit.gov.cn`
- 备案通过后 30 天内需完成公安备案
## 三、SSL 证书申请
备案通过后域名可以解析了,此时网站还是 HTTP。下一步申请 SSL 证书开启 HTTPS。
**控制台路径**:腾讯云控制台 → 产品 → SSL 证书 → 我的证书 → 申请免费证书
我使用的是腾讯云「SSL 单域名证书(一年期)」,TrustAsia DV 品牌,RSA 2048 位加密,SHA256 签名算法。证书覆盖主域名 `fukun.net` 和 `www.fukun.net`。
证书链:`fukun.net` → TrustAsia DV TLS RSA CA 2025 → DigiCert Global Root G2。
### 操作步骤
1. 在 SSL 证书控制台点击「申请免费证书」(或购买对应类型的证书,¥64.6/年)
2. 填写申请信息:
- 证书绑定域名:`fukun.net`
- 选择「自动添加 DNS 验证记录」— 腾讯云会自动添加一条 TXT 记录
3. 提交申请,等待验证通过(通常 1–5 分钟)
4. 验证通过后状态变为「已签发」,点击「下载」
5. 选择「Nginx」格式下载,得到一个 zip 包
解压后得到四个文件:
| 文件 | 用途 |
|------|------|
| `fukun.net.csr` | 证书请求文件,申请时自动生成,部署不需要 |
| `fukun.net.key` | 私钥,Nginx ssl_certificate_key 使用 |
| `fukun.net_bundle.crt` | CRT 格式证书,含中间证书,Nginx 使用 |
| `fukun.net_bundle.pem` | PEM 格式证书,与 CRT 同内容,备用 |
## 四、Nginx SSL 配置
### 上传证书到服务器
```bash
# 将证书文件传到服务器
scp fukun.net.key fukun.net_bundle.crt ubuntu@62.234.90.54:~/
# SSH 登录服务器
ssh ubuntu@62.234.90.54
# 移动到 Nginx SSL 目录并设置权限
sudo mv ~/fukun.net.key ~/fukun.net_bundle.crt /etc/nginx/ssl/
sudo chown root:root /etc/nginx/ssl/fukun.net*
sudo chmod 600 /etc/nginx/ssl/fukun.net.key
```
### Nginx 站点配置
编辑 `/etc/nginx/sites-available/hugo-blog`:
```nginx
# HTTP → HTTPS 重定向
server {
listen 80;
server_name fukun.net www.fukun.net;
return 301 https://$host$request_uri;
}
# HTTPS 站点
server {
listen 443 ssl http2;
server_name fukun.net www.fukun.net;
ssl_certificate /etc/nginx/ssl/fukun.net_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/fukun.net.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
root /home/hugo/hugo-blog/public;
index index.html;
location / {
try_files $uri $uri/ =404;
}
# 静态资源缓存
location ~* \.(css|js|jpg|jpeg|png|gif|ico|svg|webp)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
}
```
```bash
# 启用站点
sudo ln -sf /etc/nginx/sites-available/hugo-blog /etc/nginx/sites-enabled/
# 测试配置
sudo nginx -t
# 重载 Nginx
sudo systemctl reload nginx
```
## 五、备案号悬挂
工信部要求备案号须挂在网站首页底部。在 Hugo 的 `hugo.yaml` 配置:
```yaml
params:
footer:
icp: "粤ICP备2026061516号"
```
在布局文件 `layouts/_partials/footer.html` 中渲染:
```go-html-template
{{- with .Site.Params.footer.icp }}
<div class="hx:mt-2 hx:text-xs">
<a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener noreferrer">
{{ . }}
</a>
</div>
{{- end }}
```
## 六、公安部网站备案
ICP 备案通过后 30 天内,还需进行公安机关互联网站备案。注意需要先完成主体备案,再完成网站备案,两步都要做。
**网站**:www.beian.gov.cn → 全国公安机关互联网站安全服务平台
**第一步:主体备案**
1. 注册账号并登录
2. 进入「办事大厅」→「开办主体管理」→「新增主体」
3. 填写主体信息(个人姓名、身份证号、地址、联系方式等)
4. 提交审核,通过后可进行网站备案
**第二步:网站备案**
1. 进入「办事大厅」→「新办网站申请」
2. 填写网站信息:网站名称、域名、IP 地址、服务器所在地
3. 选择网络接入服务商:腾讯云
4. 提交审核(约 7–10 个工作日)
5. 审核通过后获取公安备案号,格式为「粤公网安备 XXXXXXX 号」
公安备案号也需要悬挂在网站上(通常放在 ICP 备案号旁边)。
## 七、新增二级域名
网站上线后如需新增二级域名(如 `gallery.fukun.net`),二级域名与主域名共用同一个 ICP 备案号,公安备案同理,不需要重复办理。只需要做好DNS解析、证书申请、Nginx配置。
**DNS 解析**:在域名管理 → DNS 解析中新增 A 记录,主机记录填 `gallery`,指向同一 IP。
**SSL 证书**:单域名证书覆盖不到新二级域名,需要为新二级域名单独申请一张(流程同第三章,约 5 分钟)。
**Nginx 配置**:新增站点文件 `/etc/nginx/sites-available/gallery`:
```nginx
server {
listen 443 ssl http2;
server_name gallery.fukun.net;
ssl_certificate /etc/nginx/ssl/gallery_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/gallery.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers on;
root /home/hugo/blog-site/public;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
# HTTP 跳转 HTTPS
server {
listen 80;
server_name gallery.fukun.net;
return 301 https://$host$request_uri;
}
```
启用并重载:
```bash
sudo ln -sf /etc/nginx/sites-available/gallery /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
```
| 事项 | 耗时 | 费用 | 控制台路径 |
|------|------|------|-----------|
| 云服务器 | 1 天 | ¥99/月 | 控制台 → Lighthouse |
| 域名注册 | — | ¥90/年 | 控制台 → 域名注册 |
| 实名认证 | — | — | 控制台 → 域名注册 → 我的域名 |
| DNS 解析 | — | — | 域名管理 → DNS 解析 |
| ICP 备案 | 10–15 工作日 | — | 控制台 → 网站备案 |
| SSL 证书 | — | ¥64.6/年 | 控制台 → SSL 证书 → 我的证书 |
| CDN 加速 | — | ¥14/年 | 控制台 → CDN |
| 云硬盘扩容 | — | ¥70 | 控制台 → Lighthouse → 云硬盘 |
| Nginx 配置 | — | — | 无 |
| 公安备案 | 7–10 工作日 | — | beian.gov.cn |
| **合计** | **约 25–33 天** | **¥337.6** | |