-
-
Notifications
You must be signed in to change notification settings - Fork 692
Description
功能描述 / 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 后续能支持腾讯云国际站的自动更新,部署海外项目的时候就不用手动传证书了。
相关文档:
请求动机 / Motivation
腾讯云国际站出了免费的CDN,后续用户量应该会很多,所以希望可以适配一下。
其他 / Miscellaneous
更新证书接口中,我看到支持通过旧证书ID和一对密钥对来更新证书,更新后会自动部署到所绑定的资源上:
但是目前的问题是,UpdateCertificateInstance 接口在指定公钥私钥上传后,会获得一个新的证书ID,后面部署可能需要手动进行轮换:
所以我目前能想到的方式就是:
- 使用 UploadCertificate 上传新证书(获得新的 CertificateId)
- 使用 UpdateCertificateInstance 将新证书部署到与旧证书相同的资源上
- 更新本地的数据库记录表:将旧证书 ID 替换为新证书 ID
- 使用 DeleteCertificate 删除旧证书
前面都还好,就是不太清楚最后一点是否好实现
贡献 / Contribution
- 我乐意为此贡献代码! / I am interested in contributing to this issue!