5.6 KiB
5.6 KiB
证书管理系统部署指南
本文档详细说明了如何部署和使用证书管理系统。
系统概述
证书管理系统支持多环境部署,能够自动处理微信支付和支付宝的证书加载:
- 开发环境: 从classpath加载证书
- 生产环境: 从Docker挂载卷加载证书
- 文件系统模式: 从本地文件系统加载证书
目录结构
项目根目录/
├── certs/ # 生产环境证书目录
│ ├── README.md # 证书目录说明
│ ├── wechat/ # 微信支付证书
│ │ ├── apiclient_key.pem # 商户私钥证书
│ │ ├── apiclient_cert.pem # 商户证书
│ │ └── wechatpay_cert.pem # 微信支付平台证书
│ └── alipay/ # 支付宝证书
│ ├── app_private_key.pem # 应用私钥
│ ├── appCertPublicKey.crt # 应用公钥证书
│ ├── alipayCertPublicKey.crt # 支付宝公钥证书
│ └── alipayRootCert.crt # 支付宝根证书
├── src/main/resources/certs/dev/ # 开发环境证书目录
│ ├── wechat/ # 微信支付证书
│ └── alipay/ # 支付宝证书
├── scripts/
│ └── setup-certificates.sh # 证书管理脚本
├── Dockerfile # Docker构建文件
└── docker-compose.yml # Docker编排文件
快速开始
1. 初始化证书目录
# 使用脚本初始化
./scripts/setup-certificates.sh init
# 或手动创建
mkdir -p certs/wechat certs/alipay
mkdir -p src/main/resources/certs/dev/wechat
mkdir -p src/main/resources/certs/dev/alipay
2. 配置证书文件
开发环境
将证书文件放置在 src/main/resources/certs/dev/ 目录下:
# 微信支付证书
cp your-wechat-certs/* src/main/resources/certs/dev/wechat/
# 支付宝证书
cp your-alipay-certs/* src/main/resources/certs/dev/alipay/
生产环境
将证书文件放置在 certs/ 目录下:
# 微信支付证书
cp your-wechat-certs/* certs/wechat/
# 支付宝证书
cp your-alipay-certs/* certs/alipay/
3. 设置证书权限
# 使用脚本设置权限
./scripts/setup-certificates.sh perms
# 或手动设置
chmod -R 444 certs/
chmod 755 certs/ certs/wechat/ certs/alipay/
4. 验证证书配置
# 检查证书文件
./scripts/setup-certificates.sh check
环境配置
开发环境 (application.yml)
certificate:
load-mode: CLASSPATH
dev-cert-path: certs/dev
生产环境 (application-prod.yml)
certificate:
load-mode: VOLUME
cert-root-path: /app/certs
Docker部署
1. 构建镜像
# 构建应用
mvn clean package -DskipTests
# 构建Docker镜像
docker build -t gxwebsoft-server .
2. 使用Docker Compose部署
# 启动所有服务
docker-compose up -d
# 查看日志
docker-compose logs -f gxwebsoft-app
# 停止服务
docker-compose down
3. 单独运行容器
docker run -d \
--name gxwebsoft-server \
-p 8080:8080 \
-v $(pwd)/certs:/app/certs:ro \
-e SPRING_PROFILES_ACTIVE=prod \
-e CERTIFICATE_LOAD_MODE=VOLUME \
gxwebsoft-server
API接口
证书管理系统提供了完整的REST API:
获取证书状态
GET /api/system/certificate/status
证书健康检查
GET /api/system/certificate/health
获取诊断信息
GET /api/system/certificate/diagnostic
检查特定证书
GET /api/system/certificate/check/{certType}/{fileName}
验证证书文件
GET /api/system/certificate/validate/{certType}/{fileName}
监控和健康检查
Spring Boot Actuator
系统集成了Spring Boot Actuator健康检查:
GET /actuator/health
健康检查会验证:
- 证书文件是否存在
- 证书文件是否可读
- X509证书是否有效
- 证书是否过期
日志监控
关键日志信息:
- 证书加载模式
- 证书文件路径
- 证书验证结果
- 错误和异常信息
故障排除
常见问题
-
证书文件不存在
检查文件路径和权限 使用 ./scripts/setup-certificates.sh check 验证 -
证书权限错误
使用 ./scripts/setup-certificates.sh perms 修复权限 -
Docker挂载问题
确保证书目录正确挂载到 /app/certs 检查文件权限和SELinux设置 -
证书过期
使用 /api/system/certificate/validate 接口检查证书有效期 及时更新过期证书
调试命令
# 检查证书文件
./scripts/setup-certificates.sh check
# 验证Docker挂载
docker exec -it gxwebsoft-server ls -la /app/certs
# 查看应用日志
docker-compose logs -f gxwebsoft-app
# 测试证书API
curl -X GET "http://localhost:8080/api/system/certificate/health"
安全注意事项
- 不要将证书文件提交到版本控制系统
- 设置正确的文件权限(444 for files, 755 for directories)
- 定期更新证书文件
- 备份重要的证书文件
- 使用HTTPS传输证书文件
- 限制证书文件的访问权限
维护和更新
证书更新流程
- 备份现有证书
- 下载新证书文件
- 更新证书文件
- 重启应用服务
- 验证证书状态
定期检查
- 每月检查证书有效期
- 监控证书健康状态
- 更新过期证书
- 备份证书文件
支持和联系
如有问题,请联系技术支持或查看项目文档。