将证书推送到 阿里云 CDN、DCDN、ESA、CLB、ALB、NLB、OSS、云虚拟主机或 CAS 证书库。请使用 RAM 子用户 的 AccessKey 调用 OpenAPI,不要使用主账号密钥。
安全提示:建议单独创建一个仅用于证书自动部署的 RAM 用户,授予最小权限,并妥善保管 AccessKey Secret(仅创建时完整显示一次)。
前置说明
NestSSL 按产品调用对应 OpenAPI:
| 产品 | 部署方式 | 是否走 CAS 收费「云产品部署」 |
|---|---|---|
| CDN / DCDN / ESA / CLB / ALB / NLB / OSS | 产品 OpenAPI 换证(CDN/DCDN 先上传 CAS 再绑定 CertId) | ❌ 否(免费 API) |
| 云虚拟主机 / CAS | 上传到 CAS 证书库 | ❌ 否(仅上传;绑定仍须控制台) |
保存凭证时请同时选择:
- 云资源地域:CLB/ALB/NLB/OSS 等实例所在地域
- CAS 证书库地域:仅中国站(
cn-hangzhou)或国际站(ap-southeast-1),由阿里云账号站点决定,不是资源地域
下文以 自定义策略(最小权限) 为例。本站 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 的产品 | yundun-cert:UploadUserCertificate |
上传证书到 CAS |
| CAS / 云虚拟主机,以及 CDN / DCDN | yundun-cert:ListUserCertificateOrder |
CAS、云虚拟主机的目标检查读 CAS 列表;CDN、DCDN 的目标检查读域名,并同时读 CAS 列表 |
| CLB / ALB / NLB / OSS | yundun-cert:ListUserCertificateOrder |
这些目标检查读各自资源,不读 CAS 列表。ESA 目标检查也只读自身资源,且不使用这条 CAS 列表权限。API 凭证页的测试会另读 CAS 列表,因此上列产品仍保留该权限建议 |
| CAS / CDN / DCDN / CLB | yundun-cert:GetUserCertificateDetail |
复用前核验证书是否仍在。本站传 CertFilter=true,不请求证书和私钥;该权限本身不是仅元数据,默认或 false 时可读取证书和私钥 |
| ALB / NLB | yundun-cert:GetUserCertificateDetail |
换证前确认监听当前默认证保护的域名。本站传 CertFilter=true,不请求证书和私钥 |
| OSS / 云虚拟主机 | 不含 GetUserCertificateDetail |
这些产品当前直接上传,不走证书详情核验 |
| CDN | cdn:DescribeCdnDomainDetail、cdn:SetCdnDomainSSLCertificate |
查询/绑定 CDN 加速域名证书 |
| DCDN | dcdn:DescribeDcdnDomainDetail、dcdn:SetDcdnDomainSSLCertificate |
查询/绑定全站加速域名证书 |
| ESA | esa:GetSite、esa:ListCertificates、esa:ListInstanceQuotasWithUsage、esa:SetCertificate、esa:DeleteCertificate |
查询站点、列证书、查配额、按主机名新增或更新边缘证书;配额不足时会删除站点上任意一张已过期的自定义上传证(type=upload) |
| CLB | slb:DescribeLoadBalancerAttribute、slb:DescribeDomainExtensions、slb:DescribeLoadBalancerHTTPSListenerAttribute、slb:DescribeServerCertificates、slb:UploadServerCertificate、slb:SetDomainExtensionAttribute、slb:SetLoadBalancerHTTPSListenerAttribute |
查询实例、扩展域名、监听、证书库,以及上传和换证。最小策略不用 slb:Describe* / slb:Set* 通配 |
按目标类型选取对应子集,并保留您已有的无关授权,不必删除旧策略。Resource 为 * 的示例覆盖该账号下相应资源,并不限制到单个域名或实例。下文第一份 JSON 是 全产品可选并集;第二份是 CDN + CLB 共用凭证 的完整可复制策略。
2.3 使用脚本编辑填入 JSON
- 在创建页切换到 「脚本编辑」 选项卡
- 将下方 JSON 完整替换 编辑器中的默认内容
- 点击 「继续编辑基本信息」(或「下一步」)
- 填写 策略名称,例如:
NestSSL证书管理;备注可留空 - 点击 「确定」 完成创建
全产品并集(可选;专用产品请改用对应子集):
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"alb:GetListenerAttribute",
"alb:UpdateListenerAttribute",
"cdn:DescribeCdnDomainDetail",
"cdn:SetCdnDomainSSLCertificate",
"dcdn:DescribeDcdnDomainDetail",
"dcdn:SetDcdnDomainSSLCertificate",
"esa:DeleteCertificate",
"esa:GetSite",
"esa:ListCertificates",
"esa:ListInstanceQuotasWithUsage",
"esa:SetCertificate",
"nlb:GetListenerAttribute",
"nlb:UpdateListenerAttribute",
"oss:ListCname",
"oss:PutCname",
"slb:DescribeDomainExtensions",
"slb:DescribeLoadBalancerAttribute",
"slb:DescribeLoadBalancerHTTPSListenerAttribute",
"slb:DescribeServerCertificates",
"slb:SetDomainExtensionAttribute",
"slb:SetLoadBalancerHTTPSListenerAttribute",
"slb:UploadServerCertificate",
"yundun-cert:GetUserCertificateDetail",
"yundun-cert:ListUserCertificateOrder",
"yundun-cert:UploadUserCertificate"
],
"Resource": "*"
}
]
}
CDN 与 CLB 共用同一 AccessKey 时,复制下面这份(CAS 三项 + CDN 两项 + CLB 七项):
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cdn:DescribeCdnDomainDetail",
"cdn:SetCdnDomainSSLCertificate",
"slb:DescribeDomainExtensions",
"slb:DescribeLoadBalancerAttribute",
"slb:DescribeLoadBalancerHTTPSListenerAttribute",
"slb:DescribeServerCertificates",
"slb:SetDomainExtensionAttribute",
"slb:SetLoadBalancerHTTPSListenerAttribute",
"slb:UploadServerCertificate",
"yundun-cert:GetUserCertificateDetail",
"yundun-cert:ListUserCertificateOrder",
"yundun-cert:UploadUserCertificate"
],
"Resource": "*"
}
]
}
三、为 RAM 用户授权
- 返回 RAM 用户列表,找到上一步创建的用户(如
nestssl@….onaliyun.com) - 在该用户行的 操作 列点击 「新增授权」
- 选择范围:保持默认「云账号全部资源」即可
- 选择策略:在搜索框输入策略名(如
NestSSL),勾选刚创建的 「NestSSL证书管理」 自定义策略 - 确认右侧 已选择权限策略 列表中出现该策略后,点击 「确定」
授权完成后,即可用该 AccessKey 在本站添加凭证并测试各产品目标。
四、在本站配置
建议分两步:先凭证,后目标。
4.1 添加 API 凭证
- 登录 NestSSL → 证书部署 → 左侧 阿里云 → API 凭证
- 点击 「+ 新增凭证」,填写凭证名称、区域、AccessKey ID 与 AccessKey Secret
- CAS 证书库地域只选中国站
cn-hangzhou或国际站ap-southeast-1,由账号站点决定。CLB / ALB / NLB / OSS 的 资源地域填实例所在地域(例如 CLB 在上海选「华东 2(上海)cn-shanghai」)。两者不是同一个字段,不要互相代替 - 保存后可被多个 CDN、DCDN、ESA、CLB、ALB、NLB、OSS 等目标复用
4.2 添加部署目标
在左侧选择产品类型并 「+ 新增目标」,各产品必填参数与说明见:
| 类型 | 文档 |
|---|---|
| CDN | CDN 部署 |
| DCDN | DCDN 部署 |
| ESA | ESA 部署 |
| CLB | CLB 部署(含默认证安全说明) |
| ALB | ALB 部署 |
| NLB | NLB 部署 |
| OSS | OSS 部署 |
| 云虚拟主机 | 云虚拟主机 |
| CAS | CAS 证书库 |
通用步骤:选择 API 凭证 → 填写参数 → 保存目标 → 在目标卡片点击 测试 或 测试连接 → 到 关联与推送 勾选证书(可选 自动)。
部署前请确保证书记录或密钥库中已保存 私钥。
五、上传后的操作
- CDN / DCDN / ESA / CLB / ALB / NLB / OSS:部署成功即表示对应产品证书已更新(ESA 另需站点已开启 SSL/TLS)
- 云虚拟主机 / 仅 CAS:证书在 CAS 控制台 可见后,请在对应产品控制台完成绑定
注意事项
- 云资源地域(
region_id)与 CAS 证书库地域(cas_region)是两回事:前者对应 CLB/ALB/NLB/OSS 等实例所在地域;后者仅中国站cn-hangzhou或国际站ap-southeast-1,由账号站点决定。CDN/DCDN 换证的CertRegion必须与实际上传 CertId 所在 CAS 证书库一致。历史凭证未填写时按中国站处理。 - 同一本站证书版本、同一凭证及 AccessKey 身份、同一 CAS 地域时,CDN、DCDN、CAS、CLB 优先共用 CAS 证书编号。CLB 另有资源地域里的服务器证书编号;两个证书库各留一份,不代表又上传了一次。不同凭证行、账号、地域或新版本不共用。ALB、NLB、OSS、云虚拟主机当前直接上传,不走这套共享核验。
- CAS 复用只核验本站已记录的 CertId。可靠确认该编号不存在或指纹不符后,重新上传并更新映射,不会遍历 CAS 云端库寻找其他同指纹证书。CLB 证书库才会在本次接口返回的服务器证书中查找其他同指纹条目,找到则复用,没有时才上传。权限拒绝、超时、5xx 或响应不完整不会当成已删除;绑定前证书消失则本次失败,下次重试再恢复。不能保证云端绝对只上传一次,重试仍可能留下重复证书。
- 本站不自动删除 CAS 旧证,也不自动删除或批量清理 CLB 证书。名称冲突时先核对具体冲突和现有绑定,不要直接删除「当日旧证」再试。
- ESA 按主机名分开存放,稳定名称是
nestssl-{主机名}-{摘要}。同一站点上不同主机名会各新增一张证,不会互相覆盖;同一主机名再次推送才原地更新。配额不足时会删除站点上任意一张已过期的自定义上传证(type=upload),不删除仍有效的证书。这与 CAS / CLB 不自动删证无关。 - 若「测试连接」或部署提示权限不足,请核对策略是否已授权给 当前使用的 RAM 用户,且 JSON 中 Action 拼写无误
- 目标上的「测试连接」成功只证明该目标当时的读取:CAS 与云虚拟主机读 CAS 列表;CDN / DCDN 读域名以及 CAS 列表;CLB、ESA、ALB、NLB、OSS 读各自资源。API 凭证页的测试另读 CAS 列表,与某个产品目标的检查不是同一次调用。普通连接测试不同时验证证书详情读取、上传和换绑,这些要等实际推送确认
备选方案:系统策略(权限较宽)
若不需要最小权限,可在 新增授权 时直接搜索并添加阿里云 系统策略(可多选组合):
| 系统策略 | 覆盖 |
|---|---|
AliyunYundunCertFullAccess |
CAS 证书服务 |
AliyunESAFullAccess |
边缘安全加速 ESA |
AliyunSLBFullAccess |
传统型负载均衡 CLB(系统策略名仍含 SLB) |
AliyunALBFullAccess |
应用型负载均衡 ALB |
AliyunNLBFullAccess |
网络型负载均衡 NLB |
| 各产品对应 FullAccess(如 CDN、DCDN) | 对应云产品 |
配置更简单,但权限范围大于 NestSSL 实际所需,生产环境仍建议使用上文自定义策略。