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

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 目前绝大多数网站都已经实现了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应用并实现安全防护,还是要基于实际的业务场景并考虑性能与成本等多种因素,也欢迎大家积极在社区分享更多配置上的最佳实践。

目录
相关文章
|
2月前
|
安全 应用服务中间件 网络安全
HTTPS 基础原理和配置 -3
HTTPS 基础原理和配置 -3
|
2月前
|
安全 应用服务中间件 网络安全
HTTPS 基础原理和配置 -2
HTTPS 基础原理和配置 -2
|
8月前
|
存储 安全 算法
HTTPS 原理你真的知道吗?
HTTPS 原理你真的知道吗?
|
10月前
|
存储 算法 安全
我们来谈谈https
HTTPS 也是⼀个应⽤层协议. 是在 HTTP 协议的基础上引⼊了⼀个加密层。而Http协议的内容是按照文本的明文方式传输,当数据在网路中进行传输时,可能会发生泄漏甚至是被篡改的情况!
|
11月前
|
自然语言处理 安全 网络安全
讲讲HTTPS那些事儿
前言最近在做 CSB 网关的过程中,开发了一个需求,支持 ”TLS 双向认证“。双向认证听起来比较高级,其实也不难,不过是单向认证的“加强版”。单向认证是客户端认证服务端,而双向认证则是在单向认证的基础上,增加了服务端认证客户端这一过程。单说单向认证这个词,你可能不是很熟悉,但是提到 HTTPS,应该会恍然大悟吧,经典的 HTTPS 协议中,其实就是用到了 TLS 单向认证。正好借这个机会,我对 
|
12月前
|
安全 JavaScript 小程序
HTTPS 终于搞懂了 ! 上
HTTPS 终于搞懂了 ! 上
|
12月前
|
设计模式 安全 算法
HTTPS 终于搞懂了 ! 下
HTTPS 终于搞懂了 ! 下
|
算法 安全 网络安全
HTTPS 为什么更安全,先看这些
HTTPS 为什么更安全,先看这些
79 0
|
缓存 网络协议 关系型数据库
HTTPS配置实战
现在网站使用HTTPS是规范操作之一,前些日子买了腾讯云服务,同时申请了域名http://www.asap2me.top/,目前该域名只支持HTTP,想升级为HTTPS。
|
网络协议 安全 网络安全
HTTPs 的原理——2021-03-29
HTTPs 的原理——2021-03-29
100 0
HTTPs 的原理——2021-03-29