一文带你搞懂阿里云上HTTPS配置

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
传统型负载均衡 CLB,每月750个小时 15LCU
边缘安全加速 ESA,基础版 3个月
简介: 目前绝大多数网站都已经实现了HTTPS,不过云上HTTPS的SSL证书在哪配、怎么配是一个值得讨论的问题,在大型企业复杂的部署架构下,一个Web应用访问路径可能经过CDN->WAF->SLB->NGINX等多层,下面就带大家了解云上服务如何启用HTTPS。

目前绝大多数网站都已经实现了HTTPS,不过云上HTTPS的SSL证书在哪配、怎么配是一个值得讨论的问题,在大型企业复杂的部署架构下,一个Web应用访问路径可能经过CDN->WAF->SLB->NGINX等多层,下面就带大家了解云上服务如何启用HTTPS。

什么是HTTPS

HTTP协议以明文方式发送内容,不提供任何方式的数据加密。HTTPS协议是以安全为目标的HTTP通道,简单来说,HTTPS是HTTP的安全版,即将HTTP用SSL/TLS协议进行封装,HTTPS的安全基础是SSL/TLS协议。HTTPS提供了加密通讯方法,被广泛用于万维网上安全敏感的通讯,例如交易支付。

目前绝大多数网站都已经实现了HTTPS,不过云上HTTPS的SSL证书在哪配、怎么配是一个值得讨论的问题,在大型企业复杂的部署架构下,一个Web应用访问路径可能经过CDN->WAF->SLB->NGINX等多层,下面就带大家了解云上服务如何启用HTTPS。

证书申请

为了进行以下实践,请提前准备好一个测试域名以及证书。本文以阿里云申请免费证书为例,文档可以参考https://help.aliyun.com/document_detail/156645.html

在完成申请后,请在控制台把证书下载到本地备用

方案选择

做好上述准备后,我们来看下Web应用部署在云上有哪些方案可供大家组合,可能用到的组件有CDN(DCDN),WAF,CLB(ALB),ECS(ACK 含ingress)等,下面我们就几种常见的组合为大家做分享

ECS+EIP

方案说明:这是最简单的Web部署方案,适用于个人建站或者测试练习使用,不具备高可用机制。

image.png

准备工作:申请ECS主机,并绑定公网IP,将DNS域名解析配置到该公网IP

操作部署:以nginx为例请参考操作文档https://help.aliyun.com/document_detail/98728.html?spm=5176.b657008.help.dexternal.7d93799d5vOMmc

部署到其他Web服务器请参考上述链接中左侧列出的其他参考文档

SLB(ALB)+ECS

方案说明:通过SLB进行负载均衡,适用于中小企业部署应用,实现基本的安全防护和高可用机制。在选型中我们需要考虑使用SLB(又名CLB,传统型负载均衡)或ALB(应用型负载均衡),两者均支持应用层HTTPS的负载均衡能力,更具体的差异可参考https://help.aliyun.com/document_detail/196874.html

image.png

准备工作:申请ECS主机,并在主机上启用Web服务,将DNS域名解析指向SLB的公网IP

操作部署:CLB操作说明请参考文档https://help.aliyun.com/document_detail/85953.html

ALB的操作说明请参考文档https://help.aliyun.com/document_detail/198571.html

WAF+SLB+ECS

方案说明:Web应用防火墙(Web Application Firewall,简称WAF)为您的网站或App业务提供一站式安全防护。WAF可以有效识别Web业务流量的恶意特征,在对流量清洗和过滤后,将正常、安全的流量返回给服务器,避免网站服务器被恶意入侵导致性能异常等问题,从而保障网站的业务安全和数据安全。

在SLB前端增加WAF,可以进一步提升Web应用的安全能力,相应的也需要在WAF侧配置证书

image.png

操作说明:参考文档https://help.aliyun.com/document_detail/97063.html

CDN+WAF+SLB+ECS

方案说明:为了提升客户端的响应速度,通常会选择增加内容缓存在前端,阿里云目前提供的CDN和全站加速(DCDN)产品均支持HTTPS,两者具体的差异可参考https://help.aliyun.com/document_detail/64836.html

image.png

操作说明:CDN的证书配置参考文档https://help.aliyun.com/document_detail/27118.html

DCDN的证书配置参考文档https://help.aliyun.com/document_detail/65101.html

SCDN的证书配置参考文档https://help.aliyun.com/document_detail/63736.html

SSL证书卸载

由于SSL证书卸载需要消耗服务器性能,一般来说在可信内网环境中的通讯是无需使用HTTPS加密传输的,从公网访问的流量经由中间产品后,可以将流量从HTTPS转为HTTP继续向后端转发。

上述的产品中关于SSL证书卸载的能力替大家总结如下

CDN

方案说明:通过配置回源端口为80或其他非443端口,可以实现CDN侧将HTTPS流量转为HTTP流量向源站回源,但是该方案存在一定风险。因为源站一般为WAF/SLB等仍旧暴露在公网的地址,从CDN侧L2回源流量仍旧暴露在公网,一般建议仍旧以HTTPS协议回源提升安全性。

操作参考:CDN配置回源协议 https://help.aliyun.com/document_detail/34949.html

DCDN配置回源协议https://help.aliyun.com/document_detail/65089.html

image.png

WAF

方案说明:在WAF侧配置过程中,“协议类型”处可以选择回源协议,由于源站一般为SLB等仍旧暴露在公网的地址,从WAF回源流量仍旧暴露在公网,一般建议仍旧以HTTPS协议回源提升安全性。

操作参考:https://help.aliyun.com/document_detail/97063.html

image.png

ALB

方案说明:在“服务器组”处配置后端协议,可以选择HTTP等

操作参考:管理服务器组->选择后端协议https://help.aliyun.com/document_detail/198768.html

配置全链路HTTPS访问实现加密通信https://help.aliyun.com/document_detail/215921.html

CLB

方案说明:使用CLB产品的HTTPS负载均衡,其后端只能支持HTTP协议转发。如果想要实现HTTPS的转发,请采用4层TCP的负载均衡实现透明转发。

操作参考:使用CLB部署HTTPS业务(单向认证)https://help.aliyun.com/document_detail/85953.html

强制跳转(重定向)和协议跟随

由于仍有存量应用或者客户会直接访问HTTP的地址,通过重定向的方式将HTTP流量引导至HTTPS至关重要,各个产品也都不同程度的支持重定向功能,注意该功能建议仅在某一处开启,避免出现重定向过多等问题

CDN侧配置强制跳转:https://help.aliyun.com/document_detail/27133.html

WAF开启强制跳转:https://help.aliyun.com/document_detail/97063.html

image.png

ALB使用ALB将HTTP访问重定向至HTTPS:https://help.aliyun.com/document_detail/215920.html

CLB将HTTP访问重定向至HTTPS:https://help.aliyun.com/document_detail/89151.html

另外,由于某些情况,可能仍旧需要在同一个域名下支持HTTPHTTPS访问,针对这种情况给出以下配置建议:

  1. 在CDN侧配置协议跟随https://help.aliyun.com/document_detail/34949.html

  2. 确保回源端口写的80或其他非443端口

  3. 后续链路均保持HTTPS回源,如WAF侧回源协议为HTTPS,ALB回源协议为HTTPS,CLB使用4层负载均衡(因为HTTPS负载只能HTTP回源)

  4. 不要开启其他环节的强制跳转(重定向)功能

(具体实践中可能遇到其他问题,仅供参考)

排查思路建议

在上述多种多样的组合中,可能产生诸多问题,此处给出大家一个排查问题的建议和命令

在排查问题过程中,可以将中间环节进行旁路,例如CDN->WAF->SLB->ECS的链路,在问题不清楚在哪里的时候,可以直接请求ECS检查是否有问题,再尝试直接请求SLB是否有问题。也可以重新组合,例如配置WAF->ECS,旁路掉SLB。

为了方便测试,可以通过写本地hosts文件的方式实现IP和域名的绑定,或者通过curl命令 --resolve参数来指定解析。

后续运维管理

从上文可以看出,证书的部署是一件较为繁杂的事情,

如果仅为实现最低限度的HTTPS访问,在最前端的访问界面装载证书,后续流量均改为HTTP会简化部署。

如果为实现更高的安全性,则建议在全部的访问链路上均使用HTTPS协议,这样的话需要涉及证书到期后的部署更新。

可以通过阿里云数字证书管理服务的自动部署服务来简化更新操作,可以实现证书自动续期、自动部署,参考文档到期自动部署部分,https://help.aliyun.com/document_detail/98575.html?spm=5176.b657008.help.dexternal.7d93799deKCpEA

总结

通过学习本文,相信大家已经对如何在云上进行HTTPS配置有了基本的了解,也可以看出不同产品间具有繁杂的组合。我们不能穷举所有的组合方式,具体在云上如何部署您的Web应用并实现安全防护,还是要基于实际的业务场景并考虑性能与成本等多种因素,也欢迎大家积极在社区分享更多配置上的最佳实践。

相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
3月前
|
网络协议 Java 应用服务中间件
tomcat配置域名及HTTPS
tomcat配置域名及HTTPS
|
12天前
|
安全 应用服务中间件 网络安全
49.3k star,本地 SSL 证书生成神器,轻松解决 HTTPS 配置痛点
mkcert是一款由Filippo Valsorda开发的免费开源工具,专为生成受信任的本地SSL/TLS证书而设计。它通过简单的命令自动生成并安装本地信任的证书,使本地环境中的HTTPS配置变得轻松无比。mkcert支持多个操作系统,已获得49.2K的GitHub Star,成为开发者首选的本地SSL工具。
|
1月前
|
安全 应用服务中间件 Shell
nginx配置https的ssl证书和域名
nginx配置https的ssl证书和域名
|
2月前
|
数据安全/隐私保护 Docker 容器
配置Harbor支持https功能实战篇
关于如何配置Harbor支持HTTPS功能的详细教程。
92 12
配置Harbor支持https功能实战篇
|
2月前
HAProxy的高级配置选项-配置haproxy支持https协议及服务器动态上下线
文章介绍了如何配置HAProxy以支持HTTPS协议和实现服务器的动态上下线。
141 8
HAProxy的高级配置选项-配置haproxy支持https协议及服务器动态上下线
|
2月前
|
分布式计算 Hadoop Devops
Hadoop集群配置https实战案例
本文提供了一个实战案例,详细介绍了如何在Hadoop集群中配置HTTPS,包括生成私钥和证书文件、配置keystore和truststore、修改hdfs-site.xml和ssl-client.xml文件,以及重启Hadoop集群的步骤,并提供了一些常见问题的故障排除方法。
78 3
Hadoop集群配置https实战案例
|
2月前
|
Linux Docker Windows
Docker配置https证书案例
本文介绍了如何为Docker的Harbor服务配置HTTPS证书,包括安装Docker和Harbor、修改配置文件以使用证书、生成自签名证书、配置证书以及验证配置的步骤。
173 2
Docker配置https证书案例
|
2月前
|
应用服务中间件 网络安全 Apache
HTTPS配置
HTTPS配置
133 11
|
2月前
|
监控 安全 应用服务中间件
如何配置HTTPS协议?
如何配置HTTPS协议?
199 4
|
3月前
|
Web App开发 存储
常见抓包工具配置抓取HTTPS
常见抓包工具配置抓取HTTPS