配置HTTPS证书

更新时间:
复制为 MD 格式

CDN加速域名配置HTTPS证书,能够加密客户端与CDN节点间的通信链路,防止数据在公网传输中被窃取或篡改,提升业务安全。在阿里云数字证书管理服务(原SSL)中购买的证书支持批量部署至CDN平台,具体操作请参见:批量配置HTTPS证书

适用范围

配置前,需了解以下功能边界和约束,以确保证书能成功部署:

  • 购买证书:如果您没有证书,可以选择在SSL证书管理控制台申请个人测试证书(原免费证书)或购买正式证书。

  • 私钥要求:如果您选择上传自定义证书,则上传的证书私钥必须是无密码保护的,请先验证私钥文件是否已去除密码保护

  • 国密证书(SM2):CDN控制台目前不支持直接配置SM2国密双证证书。如需使用国密证书,请通过API接口设置国密证书进行配置。

操作步骤

  1. 登录CDN控制台

  2. 在左侧导航栏,单击域名管理

  3. 域名管理页面,找到目标域名,单击操作列的管理

  4. 在指定域名的左侧导航栏,单击HTTPS配置

  5. HTTPS证书区域,单击修改配置

  6. HTTPS设置界面,打开HTTPS安全加速开关,并配置证书相关参数。证书

    • 如果您已在数字证书管理服务(原SSL)中购买了证书,请选择云盾(SSL)证书中心,并在证书名称中选择已购买的证书。

      说明

      如果无法选择您购买的证书,请检查已购买证书绑定的域名和加速域名是否相同。

    • 如果您使用的是第三方服务商签发的证书,请选择自定义上传(证书+私钥),您需要在设置证书名称后,上传证书(公钥)私钥,该证书将在阿里云数字证书管理服务中保存,您可以在我的证书中查看

      自定义上传证书对证书(公钥)私钥格式要求严格。如果您出现配置错误或看不懂配置示例,可以参考上传自定义证书处理证书(公钥)私钥,然后上传。

      参数

      说明

      证书名称

      为要上传的证书设置一个名称。

      仅支持使用英文字母、英文句号、数字、下划线(_)和短划线(-),且不能与已有证书名称重复。

      证书(公钥)

      填写步骤一中证书文件内容的PEM编码。

      私钥

      填写步骤一中私钥内容的PEM编码。由于私钥信息敏感,上传后不支持在控制台查看或导出,需在本地妥善保管。

  7. 单击确定,完成配置。

验证HTTPS配置是否生效

  • 浏览器验证:使用浏览器访问 https://您的加速域名。如果地址栏出现安全锁标志,且点击后能看到正确的证书信息,则表示配置成功。

    image

  • 命令行验证:执行 curl -I https://您的加速域名,如果能正常返回 200,则表示HTTPS服务可用。

HTTPS证书配置与回源端口的关系

CDN加速域名的HTTPS证书配置直接影响客户端可用的访问协议,进而影响回源协议和端口。

  • 未配置HTTPS证书时,CDN仅支持HTTP协议访问,回源端口为80。

  • 配置HTTPS证书并开启HTTPS安全加速后,CDN同时支持HTTPHTTPS协议访问。

  • 回源协议设置为跟随客户端模式时,CDN根据客户端访问协议自动选择回源端口:HTTP访问走80端口回源,HTTPS访问走443端口回源。

回源协议的详细配置方法,请参见配置回源协议

关闭HTTPS安全加速

如果您不再使用HTTPS安全加速功能,可随时在CDN控制台关闭HTTPS安全加速。关闭HTTPS安全加速实时生效,关闭后使用HTTPS方式无法访问资源,且不再保留证书或私钥信息。

再次开启HTTPS安全加速时,需要重新选择需要使用的证书。

上传自定义证书

如果您拥有的是第三方服务商签发或自签名的证书,需要先将证书和私钥处理成CDN支持的格式,然后上传。

  • 证书(公钥)

    CDN只支持上传PEM格式的证书。其他格式的证书需要参考证书格式转换将其转换成PEM格式。针对不同证书颁发机构的证书,对证书内容的上传有不同的要求:

    • Root CA机构颁发的证书(一个证书文件)

      使用文本编辑器即可打开PEM格式的证书文件,将以-----BEGIN CERTIFICATE-----开头和以-----END CERTIFICATE-----结尾的内容一并上传。

      -----BEGIN CERTIFICATE-----
      [证书内容]
      -----END CERTIFICATE-----
    • 中级机构颁发的证书(多个证书文件)
      需将服务器证书、所有中间CA证书按顺序拼接成一个完整的证书链文件。文件内容应遵循以下格式:

      -----BEGIN CERTIFICATE-----
      [服务器证书内容]
      -----END CERTIFICATE-----
      -----BEGIN CERTIFICATE-----
      [中间CA证书内容]
      -----END CERTIFICATE-----
  • 私钥
    私钥的扩展名一般为.key.pem。使用文本编辑器即可打开私钥文件。不同内容的私钥上传要求区别如下:

    • RSA私钥直接上传

      如果私钥内容以-----BEGIN RSA PRIVATE KEY-----开头,-----END RSA PRIVATE KEY-----结尾,则直接上传私钥内容。

      -----BEGIN RSA PRIVATE KEY-----
      [私钥内容]
      -----END RSA PRIVATE KEY-----
    • 其他格式私钥先转换格式再上传

      如果您得到的是以-----BEGIN PRIVATE KEY-----开头,以-----END PRIVATE KEY-----结尾的私钥,您需要使用OpenSSL工具的转换命令先对私钥进行转换,然后将转换后的私钥内容按照直接上传的操作处理。其中old_server_key.pem为转换前的私钥,new_server_key.pem为转换后的私钥。

      # 需要转换的私钥
      -----BEGIN PRIVATE KEY-----
      [私钥内容]
      -----END PRIVATE KEY-----
      # 转换命令
      openssl rsa -in old_server_key.pem -out new_server_key.pem
    • 对于从第三方服务商下载或申请的证书,请注意区分公钥和私钥文件:

      • 通常.pem.crt文件包含公钥(证书内容),.key.private文件包含私钥

      • 上传时,请将公钥文件(.pem.crt)的内容填入"证书(公钥)"栏,将私钥文件(.key.private)的内容填入"私钥"栏。

      • 切勿上传CSR文件(Certificate Signing Request,证书签名请求)。CSR文件仅用于向证书颁发机构申请证书,不能作为证书或私钥上传使用。

      • 若使用Nginx格式证书,请确保:

        1. 证书文件内容为PEM格式,以-----BEGIN CERTIFICATE-----开头;

        2. 私钥文件内容为PEM格式,以-----BEGIN RSA PRIVATE KEY----------BEGIN PRIVATE KEY-----开头;

        3. 证书与私钥匹配;

        4. 去除文件中可能存在的额外空格、换行或非标准字符。

      • 若证书链不完整,需将中间证书合并到主证书文件中一并上传。详细信息,请参见证书格式说明

计费说明

启用HTTPS安全加速功能会产生额外费用。

  • 计费项:静态HTTPS请求数。此费用独立于CDN流量费,按账户下所有加速域名产生的静态HTTPS请求总数计费。

  • 付费模式:支持按量后付费和购买静态HTTPS请求数资源包(预付费)两种模式。

  • 成本提醒:

    • CDN下行流量包不可抵扣HTTPS请求产生的费用。

    • 购买的静态HTTPS请求数资源包可被CDNDCDN共享使用。

参考文档

文档

描述

配置协议重定向

您可以通过配置强制跳转HTTPS功能,将客户端到CDN节点的请求强制重定向为更安全的HTTPS请求。

配置HSTS

开启HSTS(HTTP Strict Transport Security)功能,您可以强制客户端(例如:浏览器)使用HTTPSCDN节点创建连接,提高安全性。

配置OCSP Stapling

CDN节点预先缓存在线证书验证结果并下发给客户端,无需浏览器直接向CA站点查询证书状态,减少用户验证时间。

常见问题

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

  • 源站已经配置了HTTPS,CDN上还需要配置HTTPS吗?

  • 源站的HTTPS证书更新了,CDN上需要同步更新吗?

  • 为什么大多数设备能够顺利访问通过HTTPS协议加速的域名,但是一些设备却无法访问?

  • Q:CDN域名更新或更换SSL证书后,HTTPS访问仍失败或显示旧证书,如何处理?

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

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

    3. 清除缓存:配置生效后(通常1~10分钟),需清除CDN节点缓存及本地浏览器缓存后再测试。可使用无痕浏览器窗口进行验证。

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

  • Q:CDN配置HTTPS证书后,浏览器访问仍提示"不安全"或显示混合内容警告,如何排查?

    1. 检查网页源代码中是否引用了HTTP协议的资源(如图片、JS、CSS),需将其替换为HTTPS协议地址以解决混合内容问题。

    2. 清理本地浏览器缓存或使用无痕模式访问,排除缓存导致的旧证书显示。

    3. 确认客户端系统时间是否正确。系统时间不正确可能导致证书验证失败。

    4. 若使用iOS设备访问报错,可能是证书链不完整,建议使用在线工具(如myssl.com)检测并补全中间证书后重新上传。

  • Q:为什么在CDN控制台选择"云盾(SSL)证书中心"证书时,找不到已购买的证书或提示域名不匹配?

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

    2. 检查账号是否一致,确保证书和CDN域名在同一阿里云账号下。

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

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

  • Q:CDN配置HTTPS后访问返回ERR_SSL_PROTOCOL_ERRORSSL_ERROR_NO_CIPHER_OVERLAP错误,如何解决?

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

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

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

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

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

  • Q:如何通过APICLICDN域名配置SSL证书?

    可调用SetCdnDomainSSLCertificate接口配置。

    若使用阿里云CLI,命令示例如下:

    aliyun cdn set-cdn-domain-ssl-certificate \
      --domain-name <您的加速域名> \
      --cert-name <证书名称> \
      --cert-id <证书ID> \
      --cert-type cas \
      --ssl-protocol on \
      --region cn-hangzhou

    若上传自定义证书,需传入ssl-pub(公钥)和ssl-pri(私钥)参数,且cert-type设为upload。命令示例如下:

    aliyun cdn set-cdn-domain-ssl-certificate \
      --domain-name example.com \
      --cert-name yourCertName \
      --cert-type upload \
      --ssl-protocol on \
      --ssl-pub "<证书公钥PEM内容>" \
      --ssl-pri "<私钥PEM内容>" \
      --region cn-hangzhou
    重要

    不要将CSR文件内容传入接口。CSR文件仅用于申请证书,不能作为证书或私钥使用。

相关API

API

描述

SetCdnDomainCSRCertificate

设置CSR文件。

DescribeDomainCertificateInfo

获取指定加速域名证书信息。

SetCdnDomainSSLCertificate

设置某域名下证书功能是否启用及更新证书信息。

SetCdnDomainCSRCertificate

设置指定域名下的HTTPS证书。

DescribeCdnDomainByCertificate

根据证书信息获取加速域名。

DescribeCdnCertificateDetail

查询CDN证书详细信息。

DescribeCdnCertificateList

获取证书列表信息。

DescribeCertificateInfoByID

获取指定证书信息。

DescribeCdnHttpsDomainList

获取用户所有证书信息。

DescribeUserCertificateExpireCount

获取用户证书过期的域名数。

SetCdnDomainSMCertificate

设置国密证书。

DescribeCdnSMCertificateList

查询国密证书列表。

DescribeCdnSMCertificateDetail

查询国密证书详情。