OSS提供的访问域名默认支持HTTPS访问。当通过自定义域名访问OSS时,需要为该域名配置SSL证书以启用HTTPS加密传输,保障数据安全并满足合规要求。
工作原理
HTTPS协议通过TLS/SSL加密机制对数据进行端到端加密,同时利用证书链验证服务器身份,确保数据传输的机密性、完整性和身份认证。HTTPS访问OSS的实现基于在正确位置为访问域名配置有效的SSL证书,根据域名类型,支持方式有所不同:
OSS Bucket域名:格式如
<bucket-name>.oss-<region-id>.aliyuncs.com,由阿里云统一管理SSL证书,原生支持HTTPS,无需额外配置,直接使用https://前缀即可访问。自定义域名:需要用户为域名配置SSL证书。
开启HTTPS访问
证书的配置位置取决于是否启用了CDN加速。
未开启CDN:流量直接到达OSS,需在OSS控制台为自定义域名配置证书托管。
已开启CDN:流量先经CDN节点再转发至OSS,需在CDN控制台为CDN加速域名配置HTTPS证书。
可通过以下任一方式判断自定义域名是否启用了CDN加速:
OSS控制台
前往Bucket列表,单击目标Bucket。
在左侧菜单栏单击。
域名列表会展示该Bucket已绑定的域名。如果阿里云 CDN 加速显示已配置,其HTTPS证书需在CDN控制台管理。
CDN控制台
前往CDN域名列表,查看已配置且生效的CDN加速域名及其源站Bucket信息。
步骤一:配置SSL证书
根据自定义域名的访问链路,选择对应的方式配置SSL证书。
OSS自定义域名
适用于自定义域名CNAME解析到OSS Bucket访问域名的场景。
前往Bucket列表,单击目标Bucket,然后在左侧单击。
在目标自定义域名操作列单击证书托管,然后在证书名称右侧下拉选择证书。
单击上传,完成证书托管配置。
CDN加速域名
适用于通过CDN加速域名回源到OSS Bucket的场景。
前往CDN控制台,单击目标加速域名,然后单击HTTPS配置,在HTTPS证书旁边单击修改配置。
勾选HTTPS安全加速,阅读计费提醒并确认。
根据证书来源,选择SSL证书或填写第三方证书信息。
数字证书管理服务:在证书名称右侧下拉选择证书。
自定义上传(证书+私钥):按页面提示填写证书名称、证书(公钥)和私钥。
单击确定,完成HTTPS证书配置。
若无法选择目标证书,请前往数字证书管理服务控制台确认证书满足以下条件:
证书已签发并在有效期限内。
证书的绑定域名包含当前要配置的域名。
步骤二:验证HTTPS访问效果
配置完成后,等待配置生效(CDN HTTPS配置约需1分钟),然后通过浏览器验证HTTPS访问:
OSS自定义域名
前往Bucket列表,单击目标Bucket名称。
单击目标文件的文件名或操作列的详情,域名选择自定义域名,并在下拉框中选择绑定的自定义域名,然后单击复制文件 URL。
CDN加速域名
用CDN加速域名构造访问URL,如https://example.com/example.jpg,其中example.com为CDN加速域名。
在浏览器中访问该URL,验证浏览器地址栏显示安全锁图标,表明连接已加密保护。
强制使用HTTPS访问
生产环境建议强制所有客户端使用HTTPS协议访问,防止数据在传输过程中被窃取或篡改。根据域名类型选择对应的配置方式。
OSS自定义域名
前往Bucket列表,单击目标Bucket,然后在左侧单击,选择按语法策略添加方式添加以下Bucket Policy来拒绝所有HTTP请求。
请将示例中的<bucket-name>替换为实际的Bucket名称,如存在存量Policy,请在原有Policy上添加Statement。
{
"Version": "1",
"Statement": [{
"Effect": "Deny",
"Action": ["oss:*"],
"Principal": ["*"],
"Resource": [
"acs:oss:*:*:<bucket-name>",
"acs:oss:*:*:<bucket-name>/*"
],
"Condition": {
"Bool": {
"acs:SecureTransport": ["false"]
}
}
}]
}CDN加速域名
通过以下任一方式强制客户端使用HTTPS访问:
证书生命周期管理
查看证书到期时间
OSS自定义域名
前往Bucket列表,单击目标Bucket,然后在左侧单击。
单击目标域名的证书详情,查看证书到期时间。
CDN加速域名
前往CDN控制台,在左侧导航栏单击证书服务,查看证书过期时间。
更新证书
证书更新操作与首次配置相同,根据域名类型和更新方式选择对应的路径。
控制台
命令行工具与API
自动续期
SSL证书有固定有效期,过期将导致访问中断。建议提前30天进行证书更新。
阿里云SSL证书:开启证书托管可实现自动续期,减少人工干预。
第三方证书:建立定期更新流程和责任人制度,确保及时续签。
关闭HTTPS访问
当不再需要HTTPS加密访问时,可按以下方式关闭。
OSS自定义域名
前往Bucket列表,单击目标Bucket,然后在左侧单击。
单击目标域名证书详情旁的删除图标,然后单击确定。
CDN加速域名
为避免访问中断,在关闭HTTPS前,必须先将强制跳转类型恢复为默认,并关闭HSTS功能。
前往CDN控制台,单击目标加速域名,然后单击HTTPS配置,在HTTPS证书旁边单击修改配置。
关闭HTTPS安全加速,然后单击确定。
应用于生产环境
性能优化
现代浏览器和CDN普遍支持HTTP/2协议,相比HTTP/1.1具有多路复用、头部压缩等优势。在CDN配置中配置HTTP/2和Gzip压缩,可在保证安全性的同时优化传输效率。
风险防范
备用证书机制:准备备用SSL证书以应对主证书失效或CA机构故障。对于关键业务,建议使用不同CA的证书作为备份,在主证书出现问题时快速切换。
HTTP回退策略:在证书配置出现严重问题且无法快速修复时,建立标准应急流程,临时允许HTTP访问,同时加强监控确保及时恢复。
计费说明
在CDN中开启HTTPS功能后,将根据产生的静态HTTPS请求数单独计费。详情请参见静态HTTPS请求数。
常见问题
配置SSL证书后,为什么浏览器访问仍然提示"不安全"或"证书错误"?
当配置完成后仍出现安全警告,可按以下方法排查:
检查配置位置:确认访问域名是否开启了CDN加速。如果开启,必须在CDN控制台配置HTTPS证书,OSS控制台的证书托管不会生效。
清除浏览器缓存:浏览器可能缓存旧的证书状态,清除缓存后重新访问。
等待配置生效:CDN HTTPS配置或OSS证书托管需要一定时间下发生效。
检查证书链完整性:中级CA颁发的证书需要将服务器证书与中间证书拼接成完整的证书链后上传。证书颁发机构通常会提供拼接说明,请仔细查阅相关文档。
通过HTTPS协议访问OSS出现证书异常如何处理?
根据不同的证书异常类型,采用对应的处理方法:
为什么在选择证书时下拉列表中找不到目标证书?
证书与域名不匹配:系统只列出与当前域名匹配的证书。如为
oss.example.com配置证书时,无法选择颁发给cdn.example.com的证书。证书不在当前账号下:需在SSL证书管理页面上传证书。
泛域名证书层级不匹配:泛域名证书仅支持同级别域名,如
*.example.com可匹配www.example.com、oss.example.com,但无法匹配cdn.oss.example.com。
CDN配置HTTPS证书时提示"证书格式不对",如何转换?
CDN HTTPS配置仅支持PEM格式证书。如果证书不是PEM格式,请参见证书格式说明完成格式转换后再上传。