阿里云
将证书推送到 阿里云 CDN、ESA、CLB、ALB、NLB、OSS、云虚拟主机或 CAS 证书库。请使用 RAM 子用户 的 AccessKey 调用 OpenAPI,不要使用主账号密钥。
安全提示:建议单独创建一个仅用于证书自动部署的 RAM 用户,授予最小权限,并妥善保管 AccessKey Secret(仅创建时完整显示一次)。
前置说明
NestSSL 按产品调用对应 OpenAPI:
| 产品 | 部署方式 | 是否走 CAS 收费「云产品部署」 |
|---|---|---|
| CDN / ESA / CLB / ALB / NLB / OSS | 产品 OpenAPI 直接换证 | ❌ 否(免费 API) |
| 云虚拟主机 / CAS | 上传到 CAS 证书库 | ❌ 否(仅上传;绑定仍须控制台) |
下文以 自定义策略(最小权限) 为例。本站 API 凭证 页也会按您已创建的目标类型,动态给出建议权限 JSON,可与下文对照。
命名说明:传统型负载均衡现称 CLB(控制台);OpenAPI 产品码仍为
slb:。本站侧栏与文档统一写 CLB。
一、创建 RAM 用户(API 访问)
- 打开 RAM 用户控制台
- 点击 「创建用户」
- 填写用户信息,例如:
- 登录名称:
nestssl(可自定;完整 ID 形如nestssl@您的账号ID.onaliyun.com) - 显示名称:
NestSSL 证书自动部署 - 备注:
用于证书自动部署
- 登录名称:
- 在 访问配置 中:
- 不要 勾选「使用控制台访问」
- 勾选「使用永久 AccessKey 访问」(用于 API 或其他开发工具访问)
- 点击 「确定」,创建成功页会直接显示 AccessKey ID 与 AccessKey Secret
若当时未保存 Secret,可进入该用户 → 认证管理 → 创建 AccessKey 重新生成(旧 Key 建议及时禁用)。
二、创建自定义权限策略
2.1 进入策略列表
打开 RAM 权限策略,可查看账号下已有策略;点击左上角 「创建权限策略」 开始新建。
也可直接访问创建页:创建权限策略。
2.2 按产品需要的 Action
| 产品 | Action | 用途 |
|---|---|---|
| CAS / 虚拟主机 / CLB / ALB / NLB / OSS | yundun-cert:UploadUserCertificate |
上传证书到 CAS |
| CAS / 虚拟主机 / CLB / ALB / NLB / OSS | yundun-cert:ListUserCertificateOrder |
测试连接(只读) |
| CDN | cdn:DescribeCdnDomainDetail、cdn:SetCdnDomainSSLCertificate |
查询/更新加速域名证书 |
| ESA | esa:GetSite、esa:SetCertificate |
查询站点 / 更新边缘证书 |
| CLB | slb:Describe*、slb:UploadServerCertificate、slb:Set* |
查询实例、换扩展域/默认证(API 码仍为 slb:) |
| ALB | alb:GetListenerAttribute、alb:UpdateListenerAttribute |
查询/更新 HTTPS 监听默认证 |
| NLB | nlb:GetListenerAttribute、nlb:UpdateListenerAttribute |
查询/更新 TCPSSL 监听证书 |
| OSS | oss:ListCname、oss:PutCname |
更新自定义域名证书 |
仅用某一产品时,可只保留对应 Action;下文 JSON 为 全产品一次性授权 示例。
2.3 使用脚本编辑填入 JSON
- 在创建页切换到 「脚本编辑」 选项卡
- 将下方 JSON 完整替换 编辑器中的默认内容
- 点击 「继续编辑基本信息」(或「下一步」)
- 填写 策略名称,例如:
NestSSL证书管理;备注可留空 - 点击 「确定」 完成创建
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"yundun-cert:UploadUserCertificate",
"yundun-cert:ListUserCertificateOrder",
"cdn:DescribeCdnDomainDetail",
"cdn:SetCdnDomainSSLCertificate",
"esa:GetSite",
"esa:SetCertificate",
"slb:DescribeLoadBalancerAttribute",
"slb:DescribeDomainExtensions",
"slb:DescribeLoadBalancerHTTPSListenerAttribute",
"slb:DescribeServerCertificates",
"slb:UploadServerCertificate",
"slb:SetDomainExtensionAttribute",
"slb:SetLoadBalancerHTTPSListenerAttribute",
"alb:GetListenerAttribute",
"alb:UpdateListenerAttribute",
"nlb:GetListenerAttribute",
"nlb:UpdateListenerAttribute",
"oss:ListCname",
"oss:PutCname"
],
"Resource": "*"
}
]
}
三、为 RAM 用户授权
- 返回 RAM 用户列表,找到上一步创建的用户(如
nestssl@….onaliyun.com) - 在该用户行的 操作 列点击 「新增授权」
- 选择范围:保持默认「云账号全部资源」即可
- 选择策略:在搜索框输入策略名(如
NestSSL),勾选刚创建的 「NestSSL证书管理」 自定义策略 - 确认右侧 已选择权限策略 列表中出现该策略后,点击 「确定」
授权完成后,即可用该 AccessKey 在本站添加凭证并测试各产品目标。
四、在本站配置
建议分两步:先凭证,后目标。
4.1 添加 API 凭证
- 登录 NestSSL → 证书部署 → 左侧 阿里云 → API 凭证
- 点击 「+ 新增凭证」,填写凭证名称、区域、AccessKey ID 与 AccessKey Secret
- 保存后可被多个 CDN、ESA、CLB、ALB、NLB、OSS 等目标复用
4.2 添加部署目标
在左侧选择产品类型并 「+ 新增目标」,各产品必填参数与说明见:
| 类型 | 文档 |
|---|---|
| CDN | CDN 部署 |
| ESA | ESA 部署 |
| CLB | CLB 部署(含默认证安全说明) |
| ALB | ALB 部署 |
| NLB | NLB 部署 |
| OSS | OSS 部署 |
| 云虚拟主机 | 云虚拟主机 |
| CAS | CAS 证书库 |
通用步骤:选择 API 凭证 → 填写参数 → 测试 → 保存 → 到 关联与推送 勾选证书(可选 自动)。
部署前请确保证书记录或密钥库中已保存 私钥。
五、上传后的操作
- CDN / ESA / CLB / ALB / NLB / OSS:部署成功即表示对应产品证书已更新(ESA 另需站点已开启 SSL/TLS)
- 云虚拟主机 / 仅 CAS:证书在 CAS 控制台 可见后,请在对应产品控制台完成绑定
注意事项
- CAS / CLB / ALB / NLB / OSS 等场景每次推送会生成含日期与任务 ID 的证书名称(如
nestssl-261201123),避免同名冲突 - ESA 使用稳定名称
nestssl-esa-{站点ID},再次推送会复用上次证书 Id 更新 - 旧版本证书 不会 自动删除,请在 CAS / ESA 控制台定期清理历史版本
- 若「测试」或部署提示权限不足,请核对策略是否已授权给 当前使用的 RAM 用户,且 JSON 中 Action 拼写无误
- 同一天对同一域名重复部署可能触发阿里云「证书名称已存在」;可在 CAS 控制台删除当日旧版本后重试
备选方案:系统策略(权限较宽)
若不需要最小权限,可在 新增授权 时直接搜索并添加阿里云 系统策略(可多选组合):
| 系统策略 | 覆盖 |
|---|---|
AliyunYundunCertFullAccess |
CAS 证书服务 |
AliyunESAFullAccess |
边缘安全加速 ESA |
AliyunSLBFullAccess |
传统型负载均衡 CLB(系统策略名仍含 SLB) |
AliyunALBFullAccess |
应用型负载均衡 ALB |
AliyunNLBFullAccess |
网络型负载均衡 NLB |
| 各产品对应 FullAccess(如 CDN) | 对应云产品 |
配置更简单,但权限范围大于 NestSSL 实际所需,生产环境仍建议使用上文自定义策略。