以下是 将阿里云域名绑定到阿里云服务器,并在其上部署 Spring Boot 项目并配置 HTTPS 接口服务的完整流程。最终实现目标是:微信小程序可以不开启调试模式访问你的后端接口服务。
✅ 一、前提条件
条件 | 说明 |
---|---|
阿里云账号 | 已注册并完成实名认证 |
域名 | 已在阿里云申请并通过备案(必须) |
服务器 | 已购买阿里云 ECS 实例,并已开放 80 和 443 端口 |
后端框架 | 使用 Spring Boot 开发 API 接口 |
🧩 二、步骤详解
🔹 步骤 1:域名解析到阿里云服务器
登录阿里云控制台:
- 进入【域名控制台】
- 找到你要绑定的域名 → 点击“解析”
- 添加一条 A 记录:
主机记录 | 记录类型 | 记录值(ECS 公网 IP) | TTL |
---|---|---|---|
@ | A | 你的 ECS 公网 IP | 默认 |
✅ 示例:
api.example.com
解析到47.95.xxx.xxx
🔹 步骤 2:在阿里云申请 SSL 证书(免费)
登录阿里云 → 搜索【SSL证书】→ 购买免费证书
- 选择证书类型:DV 版本(个人或企业)
- 绑定域名:填写你准备使用的域名如
api.example.com
- 验证方式:DNS 自动验证(推荐)
- 提交审核,等待几分钟即可签发成功
下载证书:
- 选择格式:Tomcat / Nginx / Spring Boot 可选 Tomcat 格式
- 文件包含:
pfx
文件(证书文件)- 密码文件(
.txt
)
🔹 步骤 3:上传证书到服务器并配置 Spring Boot
1. 将 .pfx
证书上传到服务器任意目录,例如 /home/cert/api.example.com.pfx
2. 修改 Spring Boot application.yml
配置 HTTPS:
server:
port: 443
ssl:
key-store: classpath:cert/api.example.com.pfx # 证书路径(建议放在 resources/cert/ 目录下)
key-store-password: your_certificate_password # 证书密码(从 .txt 文件获取)
key-store-type: PKCS12
key-alias: api.example.com # 别名一般为域名
3. 将证书放入 Spring Boot 项目中:
- 放在
src/main/resources/cert/
目录下
4. 启动 Spring Boot 应用后,HTTPS 接口即可通过域名访问:
https://api.example.com/user/list
🔹 步骤 4:配置安全组规则,开放 443 端口
登录阿里云控制台 → 进入【ECS 控制台】
- 找到你的服务器实例
- 点击“安全组” → “配置规则”
- 添加入方向规则:
协议类型 | 端口范围 | 授权对象 | 描述 |
---|---|---|---|
HTTPS | 443 | 0.0.0.0/0 | 允许外部访问 HTTPS |
🔹 步骤 5:将域名添加到微信小程序合法域名白名单
登录微信公众平台 → 开发管理 → 开发设置 → 服务器域名
将以下地址加入白名单:
- request 合法域名:
https://api.example.com
✅ 注意事项:
- 必须使用 HTTPS 协议
- 必须已完成 ICP 备案
- 不能带端口号(默认 443)
📦 三、Spring Boot 完整代码示例
📄 示例 Controller:UserController.java
@RestController
@RequestMapping("/user")
public class UserController {
// 示例接口:GET https://api.example.com/user/list
@GetMapping("/list")
public ResponseEntity<List<String>> getUserList() {
List<String> users = Arrays.asList("张三", "李四", "王五");
return ResponseEntity.ok(users);
}
}
📄 application.yml(HTTPS 配置)
server:
port: 443
ssl:
key-store: classpath:cert/api.example.com.pfx
key-store-password: your_certificate_password
key-store-type: PKCS12
key-alias: api.example.com
📊 四、总结对比表
步骤 | 内容 | 说明 |
---|---|---|
域名解析 | 绑定到 ECS 公网 IP | 使用阿里云 DNS 解析 |
SSL 证书 | 申请免费 DV 证书 | 在阿里云 SSL 控制台操作 |
Spring Boot HTTPS 配置 | 使用 pfx + password | 放在 resources/cert 目录下 |
安全组设置 | 开放 443 端口 | 防火墙规则允许 HTTPS 流量 |
微信小程序域名白名单 | 添加 https://api.example.com | 必须 HTTPS + 已备案 |
微信小程序请求 | uni.request({ url: 'https://api.example.com/user/list' }) | 不需要开启调试即可访问 |
✅ 最佳实践建议
场景 | 建议 |
---|---|
域名备案 | 必须完成,否则无法添加到微信白名单 |
证书更新 | 每年需重新申请一次(免费证书) |
本地测试 | 可以使用 localhost 或 http 协议 |
多环境支持 | 使用 Spring Profiles 区分 dev/test/prod |
接口文档 | 使用 Swagger UI 或 Knife4j 自动生成接口文档 |
🧠 如需进一步扩展功能:
- ✅ 微信登录流程集成:可提供完整的
code -> openid
获取逻辑 - ✅ JWT Token 登录机制:前后端统一鉴权方案
- ✅ 自动化部署脚本:结合 Jenkins / GitHub Actions 实现 CI/CD
- ✅ 微信小程序封装请求模块:自动携带 token、拦截错误等
如需以上功能的具体实现,请继续提问,我可以为你定制完整的企业级开发方案。