[GH-ISSUE #811] [Feature] 支持腾讯云国际站证书更新(ssl.intl.tencentcloudapi.com) #550

Closed
opened 2026-03-03 01:04:15 +03:00 by kerem · 1 comment
Owner

Originally created by @willow-god on GitHub (Jun 19, 2025).
Original GitHub issue: https://github.com/certimate-go/certimate/issues/811

功能描述 / Description

目前 certimate 已经支持了腾讯云国内站的证书更新功能,使用的是官方 Go SDK(github.com/TencentCloud/tencentcloud-sdk-go)和 UploadUpdateCertificateInstance 等接口,使用起来非常方便。不过最近我在国际站(ssl.intl.tencentcloudapi.com)上部署项目,发现国际版的 API 接口风格和国内版有些差异,虽然整体逻辑类似,但接口并不是一一对应的。

国际站并没有 UploadUpdateCertificateInstance 这个一体化接口,而是使用 UpdateCertificateInstance 来完成更新绑定资源的操作。这个接口支持直接通过旧证书 ID 和一对新的 PEM 公钥/私钥证书来更新绑定在旧证书上的资源,实现上传 + 替换 + 部署的一键更新。请求逻辑稍有不同,但功能上还是可以达成相同效果的。此外还有 UploadCertificate、DescribeHostUpdateRecord、DescribeHostUpdateRecordDetail 等接口,分别用于上传证书、查询更新任务和查看更新进度。

我不是很确定目前 SDK 是否支持直接配置国际站的 endpoint,不过文档上看,接口版本号还是 2019-12-05,参数也都比较标准,应该可以适配。如果 SDK 限制比较多,也可以考虑 fallback 成自定义 endpoint 或手动签名调用。

希望 certimate 后续能支持腾讯云国际站的自动更新,部署海外项目的时候就不用手动传证书了。

相关文档:

国际站API证书

国际站上传证书接口

国际站更新证书接口

请求动机 / Motivation

腾讯云国际站出了免费的CDN,后续用户量应该会很多,所以希望可以适配一下。

其他 / Miscellaneous

更新证书接口中,我看到支持通过旧证书ID和一对密钥对来更新证书,更新后会自动部署到所绑定的资源上:

Image

但是目前的问题是,UpdateCertificateInstance 接口在指定公钥私钥上传后,会获得一个新的证书ID,后面部署可能需要手动进行轮换:

Image

所以我目前能想到的方式就是:

  1. 使用 UploadCertificate 上传新证书(获得新的 CertificateId)
  2. 使用 UpdateCertificateInstance 将新证书部署到与旧证书相同的资源上
  3. 更新本地的数据库记录表:将旧证书 ID 替换为新证书 ID
  4. 使用 DeleteCertificate 删除旧证书

前面都还好,就是不太清楚最后一点是否好实现

贡献 / Contribution

  • 我乐意为此贡献代码! / I am interested in contributing to this issue!
Originally created by @willow-god on GitHub (Jun 19, 2025). Original GitHub issue: https://github.com/certimate-go/certimate/issues/811 ### 功能描述 / Description 目前 certimate 已经支持了腾讯云国内站的证书更新功能,使用的是官方 Go SDK(github.com/TencentCloud/tencentcloud-sdk-go)和 UploadUpdateCertificateInstance 等接口,使用起来非常方便。不过最近我在国际站(ssl.intl.tencentcloudapi.com)上部署项目,发现国际版的 API 接口风格和国内版有些差异,虽然整体逻辑类似,但接口并不是一一对应的。 国际站并没有 UploadUpdateCertificateInstance 这个一体化接口,而是使用 UpdateCertificateInstance 来完成更新绑定资源的操作。这个接口支持直接通过旧证书 ID 和一对新的 PEM 公钥/私钥证书来更新绑定在旧证书上的资源,实现上传 + 替换 + 部署的一键更新。请求逻辑稍有不同,但功能上还是可以达成相同效果的。此外还有 UploadCertificate、DescribeHostUpdateRecord、DescribeHostUpdateRecordDetail 等接口,分别用于上传证书、查询更新任务和查看更新进度。 我不是很确定目前 SDK 是否支持直接配置国际站的 endpoint,不过文档上看,接口版本号还是 2019-12-05,参数也都比较标准,应该可以适配。如果 SDK 限制比较多,也可以考虑 fallback 成自定义 endpoint 或手动签名调用。 希望 certimate 后续能支持腾讯云国际站的自动更新,部署海外项目的时候就不用手动传证书了。 相关文档: [国际站API证书](https://www.tencentcloud.com/zh/document/product/1007/52808) [国际站上传证书接口](https://www.tencentcloud.com/zh/document/product/1007/36579) [国际站更新证书接口](https://www.tencentcloud.com/zh/document/product/1007/57981) ### 请求动机 / Motivation 腾讯云国际站出了免费的CDN,后续用户量应该会很多,所以希望可以适配一下。 ### 其他 / Miscellaneous 更新证书接口中,我看到支持通过旧证书ID和一对密钥对来更新证书,更新后会自动部署到所绑定的资源上: ![Image](https://github.com/user-attachments/assets/5361a277-9c80-43af-b012-2b2216f23a32) 但是目前的问题是,UpdateCertificateInstance 接口在指定公钥私钥上传后,会获得一个新的证书ID,后面部署可能需要手动进行轮换: ![Image](https://github.com/user-attachments/assets/17a2ec8b-cd3f-434a-9346-334eb212497a) 所以我目前能想到的方式就是: 1. 使用 UploadCertificate 上传新证书(获得新的 CertificateId) 2. 使用 UpdateCertificateInstance 将新证书部署到与旧证书相同的资源上 3. 更新本地的数据库记录表:将旧证书 ID 替换为新证书 ID 4. 使用 DeleteCertificate 删除旧证书 前面都还好,就是不太清楚最后一点是否好实现 ### 贡献 / Contribution - [ ] 我乐意为此贡献代码! / I am interested in contributing to this issue!
kerem 2026-03-03 01:04:15 +03:00
Author
Owner

@cao-gift commented on GitHub (Jun 21, 2025):

复议

<!-- gh-comment-id:2993478588 --> @cao-gift commented on GitHub (Jun 21, 2025): 复议
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/certimate#550
No description provided.