全部产品
Search
文档中心

CDN:HTTPS排障指南

更新时间:Aug 26, 2026

本文汇总CDN HTTPS配置相关的常见问题及排查方法,涵盖证书上传报错、HTTPS访问异常、设备兼容性等问题。

如何判断问题是否在HTTPS配置层

当您使用CDN加速域名时,如果出现HTTPS相关的问题,可以按以下判断思路定位问题层级:

  • 证书配置阶段报错:在上传或选择证书时控制台直接报错,属于证书配置问题,参见证书配置与上传报错

  • HTTPS访问失败但HTTP正常:通过HTTP协议可以正常访问但HTTPS访问失败或提示证书错误,通常是CDN未配置SSL证书或证书配置有误,参见HTTPS访问异常

  • 浏览器提示证书风险:HTTPS可以访问但浏览器显示"不安全"或证书风险提示,属于证书有效性或网页混合内容问题,参见网站提示证书风险

  • 部分设备无法访问:大部分设备正常但特定设备(如停止维护的旧版操作系统、部分物联网IoT设备)无法通过HTTPS访问,通常是SNI兼容性问题,参见设备与客户端兼容性

证书配置与上传报错

配置HTTPS证书时报错怎么办?

在CDN控制台上传自定义SSL证书时可能遇到多种报错。常见的报错类型及处理方法:

  • 证书格式错误:CDN仅支持PEM格式的证书。请确认证书内容以 -----BEGIN CERTIFICATE----- 开头、以 -----END CERTIFICATE----- 结尾,且通常每行64个字符。如果您的证书是DER、P7B或PFX格式,需要先转换为PEM格式。

  • 私钥格式错误:私钥文件的header需与密钥算法匹配:RSA密钥为 -----BEGIN RSA PRIVATE KEY-----(PKCS#1格式),ECC/SM2密钥为 -----BEGIN EC PRIVATE KEY-----。如果您的私钥以 -----BEGIN PRIVATE KEY----- 开头(PKCS#8格式),需先转换再上传:RSA密钥执行 openssl rsa -in old_server_key.pem -out new_server_key.pem,ECC/SM2密钥执行 openssl ec -in old_server_key.pem -out new_server_key.pem。此外,私钥不能带有密码保护,去除密码保护的方法参见私钥文件去除密码保护

  • 证书与私钥不匹配:上传的证书和私钥必须是同一对。RSA密钥使用 openssl x509 -noout -modulus -in your_cert.pem | openssl md5openssl rsa -noout -modulus -in your_key.pem | openssl md5 命令比对两者的modulus是否一致。ECC/SM2密钥没有modulus概念,请改用比对公钥的方式:分别执行 openssl x509 -pubkey -noout -in your_cert.pemopenssl ec -pubout -in your_key.pem,两者输出一致即匹配。

  • 证书域名不匹配:证书的CN或SAN必须包含加速域名。检查命令:openssl x509 -in cert.pem -noout -text | grep -E -A1 "Subject:|Subject Alternative Name"

  • 证书/密钥过长:控制台对上传内容有长度限制。请检查:证书链中是否混入多余空行、不可见字符或BOM头(可用文本编辑器显示不可见字符后清理);是否误将根CA证书粘贴进证书链(只需上传服务器证书和中间证书);是否把私钥误粘贴到了证书文本框(或相反)。

  • 证书已过期:使用 openssl x509 -in your_cert.pem -noout -dates 命令检查证书有效期。

具体格式要求和转换方法,请参见证书格式说明

私钥文件如何去除密码保护?

如果私钥带有密码保护,上传时会报私钥格式错误。您需要先去除密码保护:

  1. 确认密钥是否带有密码保护

    RSA算法加密的私钥,使用OpenSSL运行以下命令。如果提示 Enter pass phrase for <加密的私钥文件>:,说明已加密;如果直接显示私钥信息,说明未加密;如果出现error报错,说明该私钥不是RSA加密的文件:

    openssl rsa -in <加密的私钥文件> -text -noout

    ECC/SM2算法加密的私钥,使用以下命令检查:

    openssl ec -in <加密的私钥文件> -text -noout
  2. 解密私钥

    证书的加密算法为RSA时,执行以下命令解密私钥:

    openssl rsa -in <加密的私钥文件> -passin pass:<私钥密码> -out <解密的私钥文件>

    证书的加密算法为ECC或SM2时,执行以下命令解密私钥:

    openssl ec -in <加密的私钥文件> -passin pass:<私钥密码> -out <解密的私钥文件>

在CDN控制台选择证书时找不到已持有的证书或提示域名不匹配怎么办?

可能原因及处理方法:

  1. 通配符证书已部署到其他域名:通配符证书已部署到其他CDN域名后,新增域名如需复用同一证书,默认证书列表无法直接选择。需通过自定义上传方式在CDN控制台完成部署,之后才可使用数字证书管理服务控制台的部署证书功能。

  2. 证书绑定域名与加速域名不一致:检查证书绑定的域名是否与当前CDN加速域名完全一致。例如二级域名 image.example.com 不能直接使用主域名 example.com 的证书,需单独为该二级域名申请证书。

  3. 账号不一致:确保证书和CDN域名在同一阿里云账号下。

  4. 免费证书未添加www前缀:申请SSL免费证书时不会自动添加www前缀,需手动输入完整的域名进行申请。

  5. 域名格式导致无法自动匹配:若因域名格式(如根域名与子域名)导致无法自动匹配,建议在数字证书管理服务控制台创建部署任务将证书部署至CDN,或下载证书文件后通过"自定义上传"方式配置。

若证书仍未出现在资源列表中,请按以下顺序排查:

  1. 确认域名已添加到CDN。登录CDN控制台,进入域名管理页面,检查目标域名是否在列表中。证书服务的关联域名列表仅显示已添加到CDN的域名,新域名未添加时列表为空。

  2. 确认证书绑定的域名包含加速域名。通配符证书(如*.example.com)可覆盖所有同级子域名。证书绑定的域名与加速域名不匹配时,证书不会出现在可选列表中。

  3. 按顺序操作:先在CDN控制台为域名配置HTTPS证书(选择已有证书或自定义上传),完成后再通过证书控制台的云产品部署进行后续管理。证书控制台的云产品部署依赖CDN控制台侧的配置,必须先完成CDN控制台的证书配置。

配置HTTPS证书的具体操作,请参见配置HTTPS证书

上传HTTPS证书,提示证书重复怎么办?

当您上传自定义上传(证书+私钥)类型的证书时,如果系统提示证书重复,您需要修改证书名称后再重新上传。

上传泛域名证书后,访问三级及以上域名时浏览器报错怎么办?

症状:为加速域名上传泛域名(通配符)证书后,访问三级及以上域名时浏览器提示证书错误。

可能原因:泛域名证书只能匹配通配符所在层级的下一级域名。例如*.abc.com的证书可以匹配a.abc.comb.abc.com,但无法匹配主域名abc.com,也无法匹配三级域名x.a.abc.com。这是HTTPS证书规范对通配符匹配的标准限制。

解决方法:为更深层级的域名申请对应层级的泛域名证书。例如需要加速1.cdn.abc.com2.cdn.abc.com等三级域名时,应使用*.cdn.abc.com的泛域名证书。

申请或配置免费证书时提示"检测域名是否在阿里云CDN"怎么办?

症状:在CDN控制台为域名配置免费证书时,系统提示"检测域名是否在阿里云CDN",无法继续配置。

原因:免费证书的配置需要CDN加速域名正确解析到CNAME值。如果域名未正确解析到CDN分配的CNAME,系统检测不到域名在阿里云CDN上,就会提示该报错。

  1. 登录域名解析服务商控制台,检查加速域名的解析记录,确认已正确解析到CDN分配的CNAME值。

  2. 域名解析生效需要一定时间,确认解析正确后重新在CDN控制台尝试配置免费证书。

  3. 如果域名已正确解析但仍提示该报错,可借助 dignslookup 等工具确认解析已生效,并清除浏览器缓存后重试。

DCDN(全站加速)域名配置免费证书时出现同样的提示,处理方法相同。

HTTPS访问异常

CDN配置HTTPS后访问返回ERR_SSL_PROTOCOL_ERROR或SSL_ERROR_NO_CIPHER_OVERLAP怎么办?

这两个错误码的归因不同,需分别排查:

  • ERR_SSL_PROTOCOL_ERROR:通常表示CDN节点未正确配置SSL证书或证书无效。请按以下步骤排查:

    1. 检查CDN控制台HTTPS配置,确保证书已上传并启用,且证书状态正常(未过期)。

    2. 若使用自定义证书,请确保证书格式正确(PEM格式)且私钥无密码保护。

    3. 确保证书与私钥匹配,且证书绑定的域名与加速域名一致。

    4. 若之前未配置过HTTPS证书,请先在CDN控制台完成证书配置。在配置完成前,可临时使用HTTP协议访问(去掉URL中的"s")。

  • SSL_ERROR_NO_CIPHER_OVERLAP / ERR_SSL_VERSION_OR_CIPHER_MISMATCH(Firefox与Chrome对同类协商失败的不同报错):表示客户端与CDN节点协商不出共同支持的TLS协议版本或加密套件,浏览器会直接阻断连接,与证书是否配置、是否有效没有直接关系(即使证书完全正确也可能出现)。请按以下步骤排查:

    1. 确认客户端支持的TLS协议版本与加密套件:过旧的客户端可能仅支持TLSv1.0等低版本协议或老旧加密套件。

    2. 检查CDN侧已启用的TLS版本与加密套件,确认与客户端能力存在交集,配置方法请参见配置TLS版本与加密套件。若客户端过旧,建议优先升级客户端;如需临时兼容,可在CDN侧开启对应的低版本协议(低版本协议存在安全风险,仅建议作为过渡方案)。

CDN域名更新或更换SSL证书后HTTPS访问仍失败或显示旧证书怎么办?

  1. 确保证书已正确部署:登录CDN控制台,在HTTPS配置中确认已选择新证书或上传了新证书内容。

  2. 检查域名匹配:确保证书绑定的域名与CDN加速域名完全一致(包括www前缀等)。

  3. 等待生效并清除本地缓存:新证书部署到所有CDN节点需要一定时间(通常1~10分钟),请等待后复测。证书下发与CDN资源缓存无关,清除浏览器缓存或使用无痕浏览器窗口验证即可。

  4. 源站证书更新不会自动同步:若源站证书更新,CDN侧不会自动同步,必须手动在CDN控制台更新证书。

网站提示证书风险、浏览器显示"不安全"或混合内容警告怎么办?

在CDN控制台上已为域名配置了HTTPS证书,但使用浏览器访问网站时仍提示证书风险。可能原因及处理方法:

  • 原因1:证书已过期

    您需要为证书续费,续费成功后在CDN控制台上及时更新证书。更新证书请参见配置HTTPS证书

  • 原因2:系统时间不正确

    检查电脑的系统时间是否正确,系统时间不正确会导致浏览器将证书判定为已过期或尚未生效,从而提示证书风险。您需要将系统时间修改正确后再尝试浏览网站。

  • 原因3:使用了自签名HTTPS证书

    由自己生成的、非CA机构颁发的证书,称为自签名证书。自签名HTTPS证书不受各大电脑浏览器信任,容易被仿冒和遭受中间人攻击,因此会有风险提示。建议更换成由可靠的CA机构签发的HTTPS证书。

  • 原因4:网页内有HTTP链接资源(混合内容)

    网页使用了HTTP协议的链接资源(图片、JS、CSS等),浏览器会显示混合内容警告。处理方法:将HTTP协议链接修改为HTTPS协议链接进行访问。

  • 原因5:证书链不完整

    部分设备(如iOS设备)对证书链完整性要求更严格。建议使用在线工具(如myssl.com)检测并补全中间证书后重新上传。

浏览器阻断HTTPS连接或提示协议不安全(TLS版本过低、加密套件弱)怎么办?

症状:现代浏览器(如Chrome 84及以上、Firefox 78及以上、Safari 15及以上版本)直接阻断连接并报 ERR_SSL_VERSION_OR_CIPHER_MISMATCH 等错误;较旧的浏览器在地址栏显示"连接不安全"等协议层警告。

原因:CDN侧启用的TLS协议版本过低或加密套件强度不足,与客户端能力没有交集。此类问题属于TLS协议层问题,与证书信任链无关,不会显示为证书风险警告,请勿按证书问题排查。

排查步骤

  1. 确认CDN侧启用的TLS版本:阿里云CDN控制台目前支持配置TLSv1.0、TLSv1.1、TLSv1.2、TLSv1.3。TLSv1.2和TLSv1.3是目前公认安全的协议,建议启用TLSv1.2或TLSv1.3。配置方法请参见配置TLS版本与加密套件

  2. 启用主流加密套件:建议使用AES-128-GCM、AES-256-GCM等AEAD加密算法的套件,密钥交换机制使用ECDHE_RSA或ECDHE_ECDSA(配合ECC证书),避免使用加密强度低的老旧套件。

  3. 兼顾旧客户端:若业务必须兼容仅支持低版本协议的旧客户端,可临时在CDN侧开启对应的低版本协议(低版本协议存在安全风险,仅建议作为过渡方案,并尽快升级客户端)。

设备与客户端兼容性

部分设备无法通过HTTPS访问或证书校验失败(SNI兼容性问题)怎么办?

症状:大多数设备能够顺利访问通过HTTPS协议加速的域名,但一些较旧或特定配置的客户端无法访问,或出现证书校验失败。

原因:CDN在处理HTTPS请求时依赖于SNI(Server Name Indication)。SNI是TLS协议的一个扩展,它允许客户端在发起HTTPS连接请求时指定想要访问的主机名。某些较旧或特定配置的客户端(例如停止维护多年的旧版操作系统或客户端TLS库、部分物联网IoT设备等)可能不支持SNI或者在发起HTTPS请求时不会发送SNI信息。这种情况下,CDN节点无法确定客户端想要访问的确切站点,从而不能提供正确的SSL/TLS证书,导致HTTPS连接失败。

先区分问题类型:如果所有设备、所有浏览器都无法通过HTTPS访问或证书校验失败,通常是证书链问题,请按下方"证书链问题排查"处理;如果仅特定旧设备或特定客户端(如Android端微信小程序)失败,而其他浏览器访问正常,通常是SNI兼容性问题,请按下方"SNI问题排查"处理。

SNI问题排查

  1. 确认故障范围:是否仅在特定客户端(如Android微信小程序)出现证书校验失败,而在其他浏览器中测试正常。如果是,基本可以排除证书链问题,继续排查SNI。

  2. 抓取客户端的TLS握手报文,分析客户端发起请求时是否携带SNI信息。若未携带SNI,CDN节点无法返回该域名的证书。

  3. 分析客户端与服务端交换证书时是否报 Certificate Unknown 后抛出 Reset。若出现该现象且请求未携带SNI,即可确认是SNI兼容性问题。

  4. 查看服务端返回的证书是否为该域名的证书,排除证书配置错误。

证书链问题排查(适用于所有设备均失败的场景):

  1. 查看证书链是否完整。上传证书时需包含服务器证书及完整的中间证书链。

  2. 检查中间证书是否正确。中间证书错误会导致证书校验失败,可使用浏览器的导出证书功能导出中间证书进行比对,或使用在线工具(如myssl.com)检测后补全重新上传。

改善措施

  • 升级客户端系统:确保使用的操作系统和软件都是最新版本,以获得对SNI的支持。

  • 更新IoT设备固件:对于物联网设备,定期检查并安装厂商提供的最新固件更新。

  • 确保证书链完整:上传证书时确保包含完整的中间证书链,避免因证书链不完整导致部分设备校验失败。

HTTPS访问很慢或TLS握手耗时长怎么办?

症状:本地网速正常,但通过HTTPS访问CDN加速域名时网页加载很慢(例如使用隐私模式浏览器访问很慢),访问速度明显低于预期。

可能原因:HTTPS访问慢通常不是TLS协议版本协商问题(协议版本谈不拢会直接连接失败,而不是变慢),常见原因包括:

  • OCSP查询超时:客户端验证证书吊销状态时需要实时访问CA机构的OCSP服务器,查询超时会令页面加载卡住数秒。阿里云CDN支持OCSP Stapling:由CDN节点代替客户端向CA查询并缓存证书状态,在TLS握手时随证书一起下发,避免客户端实时查询。配置方法请参见配置OCSP Stapling

  • 证书链过大:上传的证书链中若包含不必要的根证书,会增加TLS握手的数据量。

  • DNS调度问题:域名解析到了距离客户端较远的CDN节点,网络时延本身较大。这属于解析调度问题,不是TLS问题。

  • TLS协议版本较低:TLSv1.3握手(1-RTT)比TLSv1.2(2-RTT)往返更少,启用高版本协议可缩短握手耗时。

排查步骤

  1. 定位耗时阶段:使用浏览器开发者工具的Network面板,查看HTTPS请求的耗时分布。若耗时集中在SSL/TLS握手阶段,按以下步骤继续排查;若握手很快而内容下载慢,则不是TLS问题,应从回源或网络链路方向排查。

  2. 检查OCSP Stapling:确认CDN侧是否已开启OCSP Stapling。未开启时,可结合抓包确认客户端握手后是否存在等待OCSP查询的现象;开启后由CDN节点随握手下发证书状态,可消除该等待。

  3. 检查证书链大小:确认上传的证书链仅包含服务器证书和中间证书,不包含根证书,避免握手数据量过大。

  4. 排除调度问题:使用 dignslookup 确认加速域名的CNAME解析结果,若客户端被调度到距离较远的CDN节点,请检查本地DNS解析配置或联系阿里云排查调度策略。

  5. 确认协议版本:确认CDN侧已启用TLSv1.2或TLSv1.3。TLSv1.3握手往返更少,正常情况下不建议关闭。配置方法请参见配置TLS版本与加密套件

  6. 复测:调整后重新访问,确认访问速度恢复正常。

DCDN(全站加速)域名出现同样的HTTPS访问慢问题,排查与处理方法相同。