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

237 lines
8.4 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: "个人网站上线全流程:从域名到备案到 HTTPS"
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 即可。生效很快,几分钟后 `ping fukun.net` 就能看到正确 IP。
## 二、工信部 ICP 备案
这是整个流程里最耗时的环节。根据《互联网信息服务管理办法》,中国大陆境内提供互联网信息服务的网站必须取得 ICP 备案号。
**控制台路径**:腾讯云控制台 → 产品 → 网站备案 → 开始备案
### 操作流程
1. 进入备案系统,选择「首次备案」
2. 填写主体信息(个人姓名、身份证号、详细通信地址)
3. 填写网站信息:
- 网站名称:注意不能包含「中国」「中华」等字样,个人备案也不能用太过商业化的名称(我填了「FuKun 技术笔记」)
- 网站域名:`fukun.net`
- 网站简介:如实描述,不要写「论坛」「商城」等需要前置审批的内容
4. 上传证件照片(身份证正反面、手持身份证照)
5. 进行人脸识别验证(微信扫码完成)
6. 提交初审
### 时间线
| 阶段 | 耗时 | 说明 |
|------|------|------|
| 腾讯云初审 | 1 个工作日 | 审核材料完整性,不合格会退回修改 |
| 工信部短信核验 | 即时 | 收到短信后 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 备案号旁边)。
## 七、总结
| 事项 | 耗时 | 费用 | 控制台路径 |
|------|------|------|-----------|
| 云服务器 | 1 天 | ¥99/月 | 控制台 → Lighthouse |
| 域名注册 | — | ¥90/年 | 控制台 → 域名注册 |
| 实名认证 | — | — | 控制台 → 域名注册 → 我的域名 |
| DNS 解析 | — | — | 域名管理 → DNS 解析 |
| ICP 备案 | 10–15 工作日 | — | 控制台 → 网站备案 |
| SSL 证书 | — | ¥64.6/年 | 控制台 → SSL 证书 → 我的证书 |
| CDN 加速 | — | ¥14/年 | 控制台 → CDN |
| 云硬盘扩容 | — | ¥70 | 控制台 → Lighthouse → 云硬盘 |
| Nginx 配置 | — | — | 无 |
| 公安备案 | 7–10 工作日 | — | beian.gov.cn |
| **合计** | **约 21–29 天** | **¥337.6** | |
整个流程走下来,**域名是小头,时间是中头,耐心是重头**。备案虽然麻烦,但一次搞定后就能安心运营。希望这篇文章能帮你省掉一些摸索的时间。