通过HTTPS协议访问OSS

访问OSS资源时,HTTP协议以明文方式传输数据,存在被窃取、篡改等安全风险,无法满足数据保护和合规要求。通过配置SSL证书启用HTTPS协议访问OSS,可实现数据加密传输,有效防范网络攻击,显著提升业务安全等级。

工作原理

HTTPS访问OSS的实现基于在正确位置为指定访问域名配置有效的SSL证书。HTTPS协议通过TLS/SSL加密机制对HTTP数据报文进行端到端加密,同时利用证书链验证服务器身份,确保数据传输过程中的机密性、完整性和身份认证。

根据使用的访问域名类型,需要在不同位置进行SSL证书配置,具体配置方式如下:

  • OSS Bucket域名

    example.oss-cn-hangzhou.aliyuncs.com。此类域名由阿里云统一管理并维护SSL证书,原生支持HTTPS协议,无需进行任何配置,直接使用https://前缀即可实现安全访问,简化了证书管理复杂度。

  • 自定义域名

    对于通过自定义域名访问OSS,SSL证书的配置位置由是否启用CDN加速服务决定,这种设计确保证书配置与流量路径保持一致。

    • 未开启CDN:流量直接访问OSS,需在OSS控制台为绑定的自定义域名配置证书托管,具体操作请参考OSS配置证书托管实现HTTPS访问

    • 已开启CDN:流量先经过CDN节点再转发至OSS,需在CDN控制台为CDN加速域名配置HTTPS证书,具体操作请参考CDN配置HTTPS证书实现HTTPS访问

      如何判断是否启用CDN加速?

      准确判断自定义域名是否启用CDN加速,可确保在正确位置配置SSL证书,避免证书配置无效的问题。判断方法如下:

      • 方法一:通过OSS控制台

        前往Bucket列表页面,单击目标Bucket,然后在左侧单击Bucket配置 > 域名管理。域名列表会展示该Bucket所有已配置的CDN加速域名,其HTTPS证书需在CDN控制台进行管理。

        image

      • 方法二:通过CDN控制台

        前往CDN域名列表,查看已配置且生效的CDN加速域名及其源站Bucket信息。通过此方式可直接查看域名的CDN加速状态和源站配置详情。

        image

OSS配置证书托管实现HTTPS访问

为绑定到OSS Bucket的自定义域名启用HTTPS安全访问,实现数据加密传输和身份验证,保障访问安全性。

开始配置前,需确保已将自定义域名绑定至OSS Bucket,并通过购买新证书申请免费证书上传第三方证书的方式,在数字证书管理服务中持有一个与该域名匹配的有效SSL证书。

步骤一:配置证书托管

SSL证书托管至OSS服务,使OSS能够为自定义域名提供HTTPS加密访问能力。

  1. 前往Bucket列表页面,单击目标Bucket,然后在Bucket左侧菜单栏单击Bucket配置 > 域名管理

  2. 在目标自定义域名操作列单击证书托管,然后在证书名称右侧下拉选择证书。若无法选择目标证书,请前往SSL证书管理页面,确保证书满足以下条件:

    • 证书已签发并在有效期限内。

    • 证书的绑定域名包含当前要配置的域名。

  3. 单击上传,完成证书托管配置。

    image

步骤二:验证HTTPS访问效果

证书托管配置完成后,需要等待配置生效。配置生效后,通过浏览器访问资源验证HTTPS加密是否正常工作,确保数据传输安全性得到保障。

  1. 前往Bucket列表,单击目标Bucket名称。

  2. 单击需要访问的目标文件操作列的详情

  3. 选择域名为自定义域名并在下拉框中选择绑定的自定义域名,然后单击复制文件URL

  4. 在浏览器中访问URL,验证HTTPS加密访问效果。浏览器地址栏应显示安全锁图标,表明连接已加密保护。

    image

CDN配置HTTPS证书实现HTTPS访问

为已开启CDN加速的自定义域名启用HTTPS安全访问,通过CDN全球节点提供加速的同时确保数据传输安全。

开始配置前,需确保已OSS Bucket配置CDN加速并将加速域名作为访问入口,并通过购买新证书申请免费证书的方式,在数字证书管理服务中持有一个与该域名匹配的有效SSL证书。也可以上传第三方证书,或在后续配置步骤中直接填写第三方证书内容和私钥。

步骤一:配置CDN HTTPS证书

CDN控制台为加速域名配置SSL证书,启用HTTPS安全加速功能。

  1. 前往CDN控制台页面,单击目标加速域名,然后单击HTTPS配置,在HTTPS证书旁边单击修改配置

  2. 勾选HTTPS安全加速,阅读计费提醒并确认

  3. 根据证书来源,选择SSL证书或填写第三方证书信息。

    • 云盾(SSL)证书中心:在证书名称右侧下拉选择证书。若无法选择目标证书,请前往SSL证书管理页面,确保证书满足以下条件:

      • 证书已签发并在有效期限内。

      • 证书的绑定域名包含当前要配置的域名。

    • 自定义上传(证书+私钥):按页面提示填写证书名称证书(公钥)私钥

  4. 单击确定,完成HTTPS证书配置。

    image

步骤二:验证CDN HTTPS访问效果

CDN加速域名的HTTPS配置下发大约需要1分钟,待配置生效后,可在浏览器通过HTTPS访问OSS资源(如https://example.com/dest.jpg,其中example.comCDN加速域名)验证配置是否生效。成功访问时,浏览器地址栏将显示安全锁图标,表明数据传输已加密保护。

image

应用于生产环境

生产环境中的HTTPS配置需要考虑安全性、可靠性和性能等多个维度,通过合理的配置策略和风险防范措施,确保业务的持续稳定运行。

最佳实践

  • 强制HTTPS访问:配置访问控制策略

    生产环境建议强制所有客户端使用HTTPS协议访问,防止数据在传输过程中被窃取或篡改,同时满足数据保护合规要求。

    • 对于OSS自定义域名,通过配置Bucket Policy拒绝所有HTTP请求。

      配置示例

      前往Bucket列表页面,单击目标Bucket,然后在左侧单击权限控制 > Bucket授权策略,选择按语法策略添加方式添加以下Bucket Policy。

      添加策略时,请替换示例配置内的 bucketname。
      {
      	"Version": "1",
      	"Statement": [{
      		"Effect": "Deny",
      		"Action": [
      			"oss:*"
      		],
      		"Principal": [
      			"*"
      		],
      		"Resource": [
      			"acs:oss:*:*:bucketname",
      			"acs:oss:*:*:bucketname/*"
      		],
      		"Condition": {
      			"Bool": {
      				"acs:SecureTransport": [
      					"false"
      				]
      			}
      		}
      	}]
      }

      配置Bucket Policy后,所有HTTP协议请求将被拒绝访问。

      image

    • 对于CDN加速域名,通过配置强制跳转开启HSTS强制客户端通过HTTPS进行访问,提升整体安全等级。

      配置示例

      • 配置强制跳转

        前往CDN控制台页面,单击目标加速域名,然后单击HTTPS配置,在强制跳转旁边单击修改配置,并按下图所示配置强制跳转。配置完成后,CDN将通过301重定向方式,将客户端到CDN节点的HTTP请求强制跳转为HTTPS请求。

        image

      • 开启HSTS

        前往CDN控制台页面,单击目标加速域名,然后单击HTTPS配置,在HSTS旁边单击修改配置,并按下图所示开启HSTS。配置完成后,客户端发起HTTP请求时将被强制转换为HTTPS请求。

        image

  • 自动续期管理:建立证书生命周期管理

    SSL证书有固定有效期,过期将导致访问中断和业务损失。建立证书到期监控告警机制,提前30天进行证书更新,确保有充足时间进行测试和部署。对于阿里云SSL证书,开启证书托管可减少人工干预;对于第三方证书,建立定期更新流程和责任人制度,确保业务连续性。

  • 性能优化:启用HTTP/2和压缩传输

    现代浏览器和CDN普遍支持HTTP/2协议,相比HTTP/1.1具有多路复用、头部压缩、服务器推送等技术优势,可显著提升页面加载速度。在CDN配置中启用HTTP/2协议和Gzip压缩,在保证安全性的同时优化传输效率,减少带宽消耗并提升用户体验。

风险防范

  • 证书故障应急:建立备用证书机制

    准备备用SSL证书以应对主证书失效、误删除或CA机构故障等突发情况。对于关键业务系统,建议使用多个证书颁发机构(CA)的证书作为备份,在主证书出现问题时快速切换,最大程度降低服务中断风险,确保业务连续性。

  • 访问降级策略:紧急情况下的HTTP回退

    虽然HTTPS是安全最佳实践,但在证书配置出现严重问题且无法快速修复时,需要有紧急的HTTP访问回退方案。建立标准应急流程和操作手册,在故障排除期间临时允许HTTP访问,同时加强监控和日志记录,确保及时发现问题并快速恢复正常状态。

OSS 根证书升级

根证书是SSL/TLS信任链的根基,用于验证服务器证书的可信性。浏览器和操作系统内置根证书库,当服务器证书由受信任的根证书签发时才被认为安全可信。

升级背景

为确保网络安全环境的持续可靠性,Mozilla2023年初实施了新的根证书信任策略。根据此策略,所有用于服务器身份验证、且签发日期超过15年的根证书,将不再获得Mozilla的信任。受此策略影响,GlobalSign发布根证书升级通知,明确GlobalSign Root R1根证书将于2025415日起失效。详情请参见Mozilla更新根证书信任策略的通知GlobalSign根证书升级通知

OSS应对策略

针对根证书信任策略变更,阿里云对象存储OSS采取以下应对策略,确保服务平滑过渡和持续可用。详情请参见阿里云对象存储 HTTPS 根证书升级公告

  • 证书更新计划

    202471日起,OSS新颁发的证书将使用GlobalSign Root R3,确保与最新安全标准兼容,避免因根证书信任策略变更导致的访问中断。

  • 交叉证书兼容方案

    为保障过渡期间的广泛兼容性,OSS现有证书通过交叉证书机制实现从GlobalSign Root R1GlobalSign Root R3的平滑迁移。基于GlobalSign Root R1的交叉证书有效期至2028128日,考虑到证书需要在到期前13个月提交申请,建议在20261228日前完成所有相关根证书的更新准备工作。

  • 未来规划和建议

    考虑到长远发展,GlobalSign Root R3虽为当前解决方案,但也将于2027415日起不再被Mozilla信任,并最终于2029318日到期。因此,强烈建议客户端及时升级根证书,同时确保根证书列表中包含GlobalSign R1、R3、R6R46等多个权威根证书,以应对未来证书轮替需求。

用户应对方式

对于绝大多数用户,无需进行任何操作。现代操作系统(如Windows 7+、macOS 10.12.1+、主流Linux发行版近5年版本)和浏览器(Chrome、Firefox、Safari等)都会自动更新其内置的根证书库,自动获得对新根证书的信任支持。

仅当在老旧的操作系统、嵌入式设备或未及时更新的自定义客户端上,通过HTTPS访问OSS遇到证书错误时,才需要参照以下步骤进行排查和更新。

步骤一:检查是否存在“GlobalSign Root CA - R3”根证书

Windows

  1. 按下Win + R键,输入certmgr.msc并回车,打开证书管理器。

  2. 在左侧导航栏展开受信任的根证书颁发机构 > 证书

  3. 在右侧列表中,查找“颁发给”为GlobalSign,“友好名称”为GlobalSign Root CA - R3的证书。

Linux

Ubuntu为例,打开终端,执行以下命令,查看系统证书目录中是否存在GlobalSign相关证书。

ls /etc/ssl/certs/ | grep GlobalSign

macOS

  1. 打开访达,搜索“钥匙串访问”,双击打开。

  2. 单击系统根证书,在右上角的搜索框中输入“GlobalSign”,双击证书可查看证书详情。

步骤二:安装缺失的根证书

如果经过检查,确认系统中确实缺少该根证书,请根据操作系统选择对应的根证书安装方式。

计费说明

CDN中开启HTTPS功能后,将根据产生的静态HTTPS请求数单独计费,详情请参见静态HTTPS请求数费用说明

常见问题

证书更换或者过期了,如何进行更新?

证书更新操作方式与首次配置相同,根据域名类型选择对应的更新路径。

  • OSS自定义域名:前往Bucket列表,在目标Bucket域名管理的证书托管中选择新证书。

  • CDN加速域名:前往CDN控制台,在目标加速域名的HTTPS配置中选择或上传新证书。

配置SSL证书后,为什么浏览器访问仍然提示“不安全”或“证书错误”?

当配置完成后仍出现安全警告,可按以下方法排查处理。

  • 检查配置位置:确认访问域名是否开启了CDN加速。如果开启,必须在CDN控制台为加速域名进行HTTPS配置,OSS控制台的证书托管不会生效。

  • 清除浏览器缓存:浏览器可能缓存旧的证书状态,清除浏览器缓存后重新访问。

  • 等待配置生效:CDN HTTPS配置或OSS证书托管配置需要一定时间下发生效,请耐心等待。

  • 检查证书链完整性:中级CA颁发的证书文件包含多份证书,需要将服务器证书与中间证书拼接成完整的证书链后上传。证书颁发机构通常会提供拼接说明,请仔细查阅相关文档。

通过HTTPS协议访问OSS出现证书异常如何处理?

根据不同的证书异常类型,采用对应的处理方法。

  • 证书未配置:浏览器显示"连接不是私密连接",报错信息:NET::ERR_SSL_PROTOCOL_ERROR。可能是证书未配置或配置位置错误,如开启了CDN加速但在OSS控制台配置了证书托管。按照正确的配置方式重新设置HTTPS访问。

  • 证书过期:浏览器显示"连接不是私密连接",报错信息:NET::ERR_CERT_DATE_INVALID。域名绑定的证书已过期,过期时间可在浏览器中查看。重新购买或申请证书后按照配置流程更新证书。

  • 证书不匹配:浏览器显示"连接不是私密连接",报错信息:NET::ERR_CERT_COMMON_NAME_INVALID。访问URL中的域名不在证书的绑定域名范围内,如访问域名为cdn.example.com,但证书绑定域名为oss.example.com。为访问域名配置正确的证书。

为什么在选择证书时下拉列表中找不到目标证书?

下拉列表中无法找到目标证书可能由以下原因导致:

  • 证书与域名不匹配:系统只会列出与当前配置域名相匹配的证书。如为域名oss.example.com配置证书时,无法选择颁发给cdn.example.com的证书。

  • 证书不在当前账号下:确认证书是否在当前阿里云账号下。如果不在,需要在SSL证书管理页面上传证书。

  • 泛域名证书层级不匹配:泛域名证书仅支持同级别域名,如*.example.com可以匹配www.example.comoss.example.com,无法匹配cdn.oss.example.com

CDN配置HTTPS证书时提示“证书格式不对”,如何进行转换?

CDN HTTPS配置仅支持PEM格式的证书,不同证书颁发机构对证书内容的上传要求有所不同。如果证书不是PEM格式,请参见证书格式说明,按照文档指引完成格式转换后再上传。

如何通过命令行或API更新证书?

如何关闭HTTPS访问?

  • OSS自定义域名

    当不再需要HTTPS加密访问时,可按以下步骤删除HTTPS证书。

    1. 前往Bucket列表页面,单击目标Bucket,然后在Bucket左侧菜单栏单击Bucket配置 > 域名管理

    2. 单击目标域名证书详情旁的删除图标,然后单击确定

      image

  • CDN加速域名

    当不再需要HTTPS加密访问时,可按以下步骤停用此功能。

    重要

    为避免访问中断,在关闭HTTPS前,必须先将强制跳转类型恢复为默认,并且关闭HSTS功能。

    1. 前往CDN控制台页面,单击目标加速域名,然后单击HTTPS配置,在HTTPS证书旁边单击修改配置

    2. 按下图所示关闭HTTPS安全加速,然后单击确定

      image