Skip to content

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

@willow-god

Description

@willow-god

功能描述 / 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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions