Files
AIclinicalresearch/docs/05-部署文档/SSL 证书域名SAE配置指南.md
HaHafeng 66255368b7 feat(admin): Add user management and upgrade to module permission system
Features - User Management (Phase 4.1):
- Database: Add user_modules table for fine-grained module permissions
- Database: Add 4 user permissions (view/create/edit/delete) to role_permissions
- Backend: UserService (780 lines) - CRUD with tenant isolation
- Backend: UserController + UserRoutes (648 lines) - 13 API endpoints
- Backend: Batch import users from Excel
- Frontend: UserListPage (412 lines) - list/filter/search/pagination
- Frontend: UserFormPage (341 lines) - create/edit with module config
- Frontend: UserDetailPage (393 lines) - details/tenant/module management
- Frontend: 3 modal components (592 lines) - import/assign/configure
- API: GET/POST/PUT/DELETE /api/admin/users/* endpoints

Architecture Upgrade - Module Permission System:
- Backend: Add getUserModules() method in auth.service
- Backend: Login API returns modules array in user object
- Frontend: AuthContext adds hasModule() method
- Frontend: Navigation filters modules based on user.modules
- Frontend: RouteGuard checks requiredModule instead of requiredVersion
- Frontend: Remove deprecated version-based permission system
- UX: Only show accessible modules in navigation (clean UI)
- UX: Smart redirect after login (avoid 403 for regular users)

Fixes:
- Fix UTF-8 encoding corruption in ~100 docs files
- Fix pageSize type conversion in userService (String to Number)
- Fix authUser undefined error in TopNavigation
- Fix login redirect logic with role-based access check
- Update Git commit guidelines v1.2 with UTF-8 safety rules

Database Changes:
- CREATE TABLE user_modules (user_id, tenant_id, module_code, is_enabled)
- ADD UNIQUE CONSTRAINT (user_id, tenant_id, module_code)
- INSERT 4 permissions + role assignments
- UPDATE PUBLIC tenant with 8 module subscriptions

Technical:
- Backend: 5 new files (~2400 lines)
- Frontend: 10 new files (~2500 lines)
- Docs: 1 development record + 2 status updates + 1 guideline update
- Total: ~4900 lines of code

Status: User management 100% complete, module permission system operational
2026-01-16 13:42:10 +08:00

4.4 KiB
Raw Blame History

子域名 iit.xunzhengyixue.com SSL 证书全流程配置指南 (针对 SAE/CLB 架构)

根据你的《2025版部署手册》你的公网入口为 CLBIP: 8.140.53.236),后端为 SAE 应用。为了满足企业微信/服务号的 HTTPS 强制要求,请严格按照以下四个阶段执行操作。

阶段一:证书申请(在你的阿里云账号操作)

  1. 进入控制台:登录你的阿里云账号,搜索进入 “数字证书管理服务”
  2. 创建证书名额
    • 点击 “正式证书” -> “个人测试证书(免费)”
    • 点击 “创建证书”,获得一个“待申请”状态的名额(每年有 20 个免费额度)。
  3. 提交申请信息
    • 在对应条目点击 “证书申请”
    • 证书绑定域名:填写 iit.xunzhengyixue.com。
    • 域名验证方式必须选择“DNS 验证”
    • CSR 生成方式:选择“系统生成”。
  4. 获取验证信息:提交后,页面会显示 主机记录(如 _dnsauth.iit记录值(一串随机长字符串)。请记录下来发给持有域名的同事。

阶段二:域名连接与验证(跨账号协作)

此阶段需要你同事在其阿里云账号xunzhengyixue.com 持有者)下操作:

  1. 建立 A 记录(建立连接)
    • 主机记录iit
    • 记录类型A
    • 记录值8.140.53.236(指向你的 SAE CLB 公网 IP
    • 目的:让访问者能找到你的服务器。
  2. 建立 TXT 记录(证书验证)
    • 主机记录:填写你从阶段一获得的 _dnsauth.iit。
    • 记录类型TXT
    • 记录值:填写你发给他的那串长字符串。
    • 目的:证明你对该子域名拥有控制权。
  3. 完成签发:同事添加成功后,回到你的证书控制台点击 “验证”。等待 10-30 分钟,状态变为“已签发”。

阶段三SAE 部署证书(核心步骤)

等证书签发后需要将“钥匙”挂在大门CLB上。

  1. 下载证书:在控制台点击下载,服务器类型选择 “Nginx”。解压得到 .pem证书和 .key私钥文件。
  2. 配置 SAE 访问设置
    • 进入 SAE 控制台 -> 应用 frontend-nginx-service -> 访问设置
    • 找到已有的公网 CLB 访问记录,点击 “修改配置”
  3. 添加 HTTPS 443 监听
    • 保留原有 80 端口规则:不要删除它。
    • 添加监听
      • 协议HTTPS
      • HTTPS 端口443标准加密端口
      • SSL 证书:选择“自定义上传”,用记事本打开那两个文件,完整复制内容贴入对应的“证书内容”和“私钥内容”框中。
      • 双向认证必须关闭 (OFF)
      • 容器端口:填写 80对应你手册 5.2 节 Nginx 容器的端口)。
  4. 开启 HTTP 重定向至 HTTPS
    • 在刚才的“修改配置”弹窗中,找到 HTTP 80 那一行规则。
    • 勾选下方的 “HTTP 重定向至 HTTPS” 开关。
    • 目的:用户输入 http://... 会自动强制跳转到安全的 https://...。

阶段四:验证与微信端联调

  1. 全链路测试
  2. 微信校验文件部署
    • 从企业微信/服务号后台下载 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 配置。