云和 CDN
阿里云 CDN 配置 HTTPS 证书
阿里云 CDN 的 HTTPS 在加速域名的“HTTPS 配置”里开启:先选证书,再设置强制跳转、HSTS、TLS 版本和 HTTPS 回源。自定义上传的证书不会自动续期,可以用 acme.sh 的 ali_cdn 钩子在每次续期后自动推送到 CDN。
示例加速域名是 cdn.example.com(或 www.example.com)。菜单名称以截至 2026 年 11 月的阿里云 CDN 控制台为准。
前提条件
开启 HTTPS 前,加速域名要已经能通过 HTTP 正常访问。
- 已在阿里云 CDN 添加加速域名,CNAME 已指向 CDN 分配的地址,HTTP 访问正常。
- 加速区域包含中国内地的,域名已完成 ICP 备案。
- 一张覆盖该域名的证书:数字证书管理服务里的证书(见 阿里云 SSL 证书申请),或者自己的 PEM 证书和私钥(例如 acme.sh 签发的证书)。
- 页面里没有写死的
http://资源。
第一步:打开 HTTPS 配置
在 CDN 控制台的域名管理页面找到加速域名,点 管理 → HTTPS 配置。在 HTTPS 证书一栏点“修改配置”,打开 HTTPS 安全加速开关。
第二步:选择证书来源
证书可以从数字证书管理服务里选,也可以自定义上传;前者在服务里续期后能同步到 CDN。
- 数字证书管理服务证书:直接选择已签发的证书,证书在该服务里续期或替换后可以同步更新。
- 自定义上传:证书一栏粘贴完整证书链(站点证书在前,中间证书在后),私钥一栏粘贴 PEM 格式私钥。
控制台还可能提供其他证书来源(例如免费证书),具体选项和额度以控制台为准。确认后提交,配置通常几分钟内在全网生效。
第三步:设置强制跳转、HSTS 和 TLS 版本
强制跳转、HSTS 和 TLS 版本都在同一个 HTTPS 配置页面里设置:
- 强制跳转:选择 HTTP → HTTPS,跳转状态码选 301。
- HSTS:确认全站 HTTPS 正常后再开启,过期时间先设短一些,原理见 开启 HSTS。
- TLS 版本控制:只保留 TLSv1.2 和 TLSv1.3,除非必须兼容很老的客户端。
- HTTP/2:建议开启。
第四步:设置 HTTPS 回源
在 回源配置 里把回源协议设为 HTTPS(或“协议跟随”),并确认源站在 443 端口有覆盖回源 Host 的有效证书。回源走 HTTP 时,源站不要再做 HTTP 跳转 HTTPS,否则会死循环。
验证
配置生效后,CDN 返回的证书颁发者和到期时间与你配置的证书一致,http:// 返回 301,开启 HSTS 后能看到对应响应头。用 SSL 证书检查 和 HSTS 检查 检查 CDN 域名,或在终端运行:
curl ssl.sh/cdn.example.com
curl -sI http://cdn.example.com | grep -iE '^(HTTP|location)'
curl -sI https://cdn.example.com | grep -i strict-transport-security
自动续期
CDN 不会替你续期自定义上传的证书。可选的自动化方式:
- 证书来自数字证书管理服务的,在该服务里使用其自动续费/部署能力(是否可用以控制台为准)。
- 证书来自 acme.sh 的,用自带的
ali_cdn部署钩子,续期成功后自动推送到 CDN:
export Ali_Key="your-access-key-id"
export Ali_Secret="your-access-key-secret"
export DEPLOY_ALI_CDN_DOMAIN="cdn.example.com"
acme.sh --deploy -d example.com --deploy-hook ali_cdn
执行一次后 acme.sh 会记住部署钩子,以后每次续期都会自动运行。RAM 子账号需要 CDN 证书配置的权限(具体权限策略以阿里云文档为准)。2027 年 3 月 15 日起证书最长 100 天,手动上传容易漏掉,要改成自动推送,并把域名加到 ssl.sh 监控(开发中)。
常见问题排查
- 证书与私钥不匹配:上传的私钥不是这张证书的,见 nginx key values mismatch,用 私钥匹配检查 确认。
- 部分手机或小程序报证书链不完整:证书一栏只粘贴了站点证书,补上中间证书,见 缺少中间证书。
- 重定向次数过多:源站和 CDN 都在跳转,见常见问题和 HTTP 跳转 HTTPS。
- 访问提示证书过期:上传的证书到期没更新,见 NET::ERR_CERT_DATE_INVALID。
- HTTPS 正常但页面提示不安全:页面里有 HTTP 资源,见 混合内容警告。
常见问题
CDN 和源站都要装证书吗?
访客看到的是 CDN 上的证书,必须配置。源站证书取决于回源协议:回源走 HTTP 时源站不需要证书,但 CDN 到源站这一段是明文;回源走 HTTPS 时源站也要有有效证书。推荐 HTTPS 回源。
开了强制跳转后出现“重定向次数过多”?
通常是 CDN 用 HTTP 回源,而源站(比如宝塔开了“强制 HTTPS”)又把请求跳回 HTTPS,形成死循环。二选一:关掉源站跳转只在 CDN 跳转,或者把回源协议改成 HTTPS/协议跟随。
用 Let's Encrypt 证书需要开 OCSP Stapling 吗?
不需要。Let's Encrypt 2025 年已停止 OCSP 服务,证书里没有 OCSP 地址,CDN 上的 OCSP Stapling 对它没有作用。商业 CA 的证书仍可按需开启。