Completed: - Add 6 core database documents (docs/01-平台基础层/07-数据库/) Architecture overview, migration history, environment comparison, tech debt tracking, seed data management, PostgreSQL extensions - Restructure deployment docs: archive 20 legacy files to _archive-2025/ - Create unified daily operations manual (01-日常更新操作手册.md) - Add pending deployment change tracker (03-待部署变更清单.md) - Update database development standard to v3.0 (three iron rules) - Fix Prisma schema type drift: align @db.* annotations with actual DB IIT: UUID/Timestamptz(6), SSA: Timestamp(6)/VarChar(20/50/100) - Add migration: 20260227_align_schema_with_db_types (idempotent ALTER) - Add Cursor Rule for auto-reminding deployment change documentation - Update system status guide v6.4 with deployment and DB doc references - Add architecture consultation docs (Prisma guide, SAE deployment guide) Technical details: - Manual migration due to shadow DB limitation (TD-001 in tech debt) - Deployment docs reduced from 20+ scattered files to 3 core documents - Cursor Rule triggers on schema.prisma, package.json, Dockerfile changes Made-with: Cursor
4.4 KiB
4.4 KiB
子域名 iit.xunzhengyixue.com SSL 证书全流程配置指南 (针对 SAE/CLB 架构)
根据你的《2025版部署手册》,你的公网入口为 CLB(IP: 8.140.53.236),后端为 SAE 应用。为了满足企业微信/服务号的 HTTPS 强制要求,请严格按照以下四个阶段执行操作。
阶段一:证书申请(在你的阿里云账号操作)
- 进入控制台:登录你的阿里云账号,搜索进入 “数字证书管理服务”。
- 创建证书名额:
- 点击 “正式证书” -> “个人测试证书(免费)”。
- 点击 “创建证书”,获得一个“待申请”状态的名额(每年有 20 个免费额度)。
- 提交申请信息:
- 在对应条目点击 “证书申请”。
- 证书绑定域名:填写 iit.xunzhengyixue.com。
- 域名验证方式:必须选择“DNS 验证”。
- CSR 生成方式:选择“系统生成”。
- 获取验证信息:提交后,页面会显示 主机记录(如 _dnsauth.iit)和 记录值(一串随机长字符串)。请记录下来发给持有域名的同事。
阶段二:域名连接与验证(跨账号协作)
此阶段需要你同事在其阿里云账号(xunzhengyixue.com 持有者)下操作:
- 建立 A 记录(建立连接):
- 主机记录:iit
- 记录类型:A
- 记录值:8.140.53.236(指向你的 SAE CLB 公网 IP)
- 目的:让访问者能找到你的服务器。
- 建立 TXT 记录(证书验证):
- 主机记录:填写你从阶段一获得的 _dnsauth.iit。
- 记录类型:TXT
- 记录值:填写你发给他的那串长字符串。
- 目的:证明你对该子域名拥有控制权。
- 完成签发:同事添加成功后,回到你的证书控制台点击 “验证”。等待 10-30 分钟,状态变为“已签发”。
阶段三:SAE 部署证书(核心步骤)
等证书签发后,需要将“钥匙”挂在大门(CLB)上。
- 下载证书:在控制台点击下载,服务器类型选择 “Nginx”。解压得到 .pem(证书)和 .key(私钥)文件。
- 配置 SAE 访问设置:
- 进入 SAE 控制台 -> 应用 frontend-nginx-service -> 访问设置。
- 找到已有的公网 CLB 访问记录,点击 “修改配置”。
- 添加 HTTPS 443 监听:
- 保留原有 80 端口规则:不要删除它。
- 添加监听:
- 协议:HTTPS
- HTTPS 端口:443(标准加密端口)
- SSL 证书:选择“自定义上传”,用记事本打开那两个文件,完整复制内容贴入对应的“证书内容”和“私钥内容”框中。
- 双向认证:必须关闭 (OFF)。
- 容器端口:填写 80(对应你手册 5.2 节 Nginx 容器的端口)。
- 开启 HTTP 重定向至 HTTPS:
- 在刚才的“修改配置”弹窗中,找到 HTTP 80 那一行规则。
- 勾选下方的 “HTTP 重定向至 HTTPS” 开关。
- 目的:用户输入 http://... 会自动强制跳转到安全的 https://...。
阶段四:验证与微信端联调
- 全链路测试:
- 访问 https://iit.xunzhengyixue.com/api/v1/health。
- 若返回 JSON 且地址栏显示“小绿锁”,说明 HTTPS 链路已通。
- 微信校验文件部署:
- 从企业微信/服务号后台下载 WW_verify_xxx.txt。
- 放入前端代码的 public 目录(这样打包后会在根目录)。
- 运行 docker build 和 docker push(参考手册 11.1 节)。
- 在 SAE 点击“部署应用”更新镜像。
- 确保 https://iit.xunzhengyixue.com/WW_verify_xxx.txt 可被外部访问。
💡 避坑总结
- 端口别写错:是 443,不是 433 或其他。
- 双向认证:千万别开,开了 PI 的手机就连不上了。
- 容器端口:CLB 负责解密,解密后依然把流量发给容器的 80 端口,所以容器端口填 80 是正确的。
- 解析优先级:同事加 A 记录时,确保没有冲突的 CNAME 记录指向同一主机名 iit。
当前状态:SOP Fully Detailed | 建议:证书签发后,第一时间按“阶段三”进行 CLB 配置。