服务网格ASM使用FAQ之(5):ASM网关支持在SLB侧创建HTTPS类型的监听

简介: ASM网关提供HTTPS安全支持、证书动态加载,从而提升ASM网关安全性。除了在ASM网关侧绑定证书的方式之外, 还可以在负载均衡侧管理证书。本文介绍如何支持ASM网关服务在负载均衡侧绑定证书, 并创建HTTPS类型的监听。


ASM网关提供HTTPS安全支持、证书动态加载,从而提升ASM网关安全性。除了在ASM网关侧绑定证书的方式之外,  还可以在负载均衡侧管理证书。

本文介绍如何支持ASM网关服务在负载均衡侧绑定证书, 并创建HTTPS类型的监听。


前提条件


背景信息

如何为K8s Service创建HTTPS类型的监听

需要先在阿里云控制台上创建一个证书并记录cert-id,然后使用如下Annotation创建一个HTTPS类型的SLB。

说明: HTTPS请求会在SLB层解密,然后以HTTP请求的形式发送给后端的Pod。


apiVersion: v1
kind: Service
metadata:  annotations:    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"  name: sample
  namespace: default
spec:  ports:  - port: 443    protocol: TCP
    targetPort: 80  selector:    app: sample
  type: LoadBalancer


具体参考文档: https://help.aliyun.com/document_detail/86531.html


步骤一:准备SLB需要的证书

本示例中为aliyun.com生成证书和私钥。

如果您已经拥有针对aliyun.com可用的证书和私钥,需要将密钥命名为aliyun.com.key,证书命名为aliyun.com.crt。如果没有,可以通过openssl执行以下步骤来生成证书和密钥。


1.执行以下命令,创建根证书和私钥。

openssl req -x509-sha256-nodes-days365-newkey rsa:2048 -subj'/O=myexample Inc./CN=aliyun.com'-keyout aliyun.root.key -out aliyun.root.crt 


2.执行以下命令,为aliyun.com服务器生成证书和私钥。

openssl req -out aliyun.com.csr -newkey rsa:2048 -nodes-keyout aliyun.com.key -subj"/CN=aliyun.com/O=myexample organization"openssl x509 -req-days365-CA aliyun.root.crt -CAkey aliyun.root.key -set_serial0-in aliyun.com.csr -out aliyun.com.crt


3.在SLB控制台中创建证书

配置HTTPS监听,您可以直接使用SSL证书服务中的证书或者将所需的第三方签发的服务器证书和CA证书上传到传统型负载均衡中。

具体参考: https://help.aliyun.com/document_detail/129370.html


步骤二:创建HTTPS类型的监听

阿里云ASM提供了自定义入口网关服务的功能, 可以通过YAML配置方式定义特定的功能参数。具体可以参考: https://help.aliyun.com/document_detail/165004.html

如下配置中, 通过serviceAnnotation将创建一个HTTPS类型的SLB,  以443为端口的HTTPS请求会在SLB层解密,然后以HTTP请求的形式发送给后端的Pod的端口80。


apiVersion: istio.alibabacloud.com/v1beta1
kind: IstioGateway
metadata:  name: ingressgateway
  namespace: istio-system
spec: ....
  ports:    - name: http-0
      port: 80      protocol: HTTP
      targetPort: 80    - name: https-1
      port: 443      protocol: HTTPS
      targetPort: 80  ....
  serviceAnnotations:    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: 'https:443'    ....
  serviceType: LoadBalancer



执行结果

通过ASM控制台查看,在控制台选中对应的服务网格实例,左侧导航栏选中ASM网关, 在右侧页面中查看对应的信息。

执行以下命令,通过HTTPS协议访问httpbin服务。


curl -k https://{替换成真实的入口网关IP地址}:443/headers
{  "headers": {    "Accept": "*/*",    "Host": "xxxx",    "Remoteip": "xxxx",    "User-Agent": "curl/7.79.1",    "X-Envoy-Attempt-Count": "1",    "X-Envoy-External-Address": "xxxx",    "X-Forwarded-Client-Cert": "By=spiffe://cluster.local/ns/default/sa/httpbin;Hash=9dd4266bc514d03aae50e174ace52eff7e577d79a14795b532be876139e8922f;Subject=\"\";URI=spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account"}}
相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
运维 Kubernetes 安全
利用服务网格实现全链路mTLS(一):在入口网关上提供mTLS服务
阿里云服务网格(Service Mesh,简称ASM)提供了一个全托管式的服务网格平台,兼容Istio开源服务网格,用于简化服务治理,包括流量管理和拆分、安全认证及网格可观测性,有效减轻开发运维负担。ASM支持通过mTLS提供服务,要求客户端提供证书以增强安全性。本文介绍如何在ASM入口网关上配置mTLS服务并通过授权策略实现特定用户的访问限制。首先需部署ASM实例和ACK集群,并开启sidecar自动注入。接着,在集群中部署入口网关和httpbin应用,并生成mTLS通信所需的根证书、服务器证书及客户端证书。最后,配置网关上的mTLS监听并设置授权策略,以限制特定客户端对特定路径的访问。
520 2
|
Kubernetes 安全 Cloud Native
解锁安全新纪元:利用服务网格Istio,打造全链路mTLS加密隧道,从入口网关到出口网关,守护数据安全的每一步
【8月更文挑战第2天】随着云原生技术的发展,服务网格(Service Mesh)如Istio已成为微服务架构的核心,通过双向TLS(mTLS)确保通信安全。首先,在Kubernetes部署Istio以管理服务通信。接着,配置入口网关实现所有入向流量的加密处理,防止数据泄露。最后,通过配置Sidecar代理如Envoy,确保服务网格安全访问外部mTLS服务,从而构建起全链路的数据安全防护。
642 11
|
Kubernetes 安全 数据安全/隐私保护
利用服务网格实现全链路mTLS(二):通过出口网关访问外部mTLS服务
阿里云服务网格(Service Mesh,简称ASM)提供了一个全托管式的服务网格平台,兼容Istio开源服务网格,简化服务治理,包括流量管理、服务间通信安全及网格可观测性。ASM出口网关统一管理网格内的出口流量,实现全链路加密通信与精细访问控制。本文介绍如何配置ASM出口网关以管理出口流量并发起mTLS通信,涉及配置ServiceEntry、创建出口网关、设置虚拟服务及目标规则等步骤,最终实现安全可控的mTLS服务访问。
506 3
|
负载均衡 测试技术 数据处理
阿里云服务网格ASM的流量标签及路由功能之(4): 基于ASM实现全链路灰度发布
当您需要在多个服务间实现全链路的灰度发布时,可以通过配置TrafficLabel来识别流量特征,将网关入口流量分为正常流量和灰度流量。灰度流量特征会在请求调用链经过的各个服务间进行传递,从而实现全链路灰度发布。本文介绍如何通过TrafficLabel能力来实现微服务的全链路灰度发布。
751 57
阿里云服务网格ASM的流量标签及路由功能之(4): 基于ASM实现全链路灰度发布
|
域名解析 运维 网络协议
使用ACME CA为ASM网关签发证书
阿里云服务网格ASM提供全托管式服务网格平台,兼容Istio开源服务网格,简化服务治理,包括流量管理、认证安全和可观测性。产品文档:[https://help.aliyun.com/zh/asm](https://help.aliyun.com/zh/asm)。本文指导如何使用cert-manager和ACME CA为ASM网关获取HTTPS证书,涉及ACME协议、挑战验证及Let's Encrypt的使用。
775 2
|
负载均衡 Kubernetes 算法
服务网格 ASM 负载均衡算法全面解析
在本文中,笔者将解析服务网格的多种负载均衡算法的实现原理和使用场景,为服务网格负载均衡算法的选择提供参考。
|
运维 Kubernetes Cloud Native
服务网格实施周期缩短 50%,丽迅物流基于阿里云 ACK 和 ASM 的云原生应用管理实践
通过本文介绍丽迅物流关于基于阿里云服务网格 ASM 如何加速企业业务云原生化进程的实践经验。
|
弹性计算 运维 Serverless
使用ASM Serverless网关支撑各种弹性业务场景
ASM Serverless网关就是基于虚拟节点和ECI提供的一种Serverless 网关形态,充分支撑各种弹性和免节点运维场景的用户诉求。
369 1
阿里云服务网格 ASM 2023 年 5 月产品动态
阿里云服务网格 ASM 2023 年 5 月产品动态
|
Java 应用服务中间件
无法解析类型 javax.servlet.http.HttpServletRequest。从必需的 .class 文件间接引用
java.lang.Error: 无法解析的编译问题: 无法解析类型 javax.servlet.http.HttpServletRequest。从必需的 .class 文件间接引用了它 无法解析类型 javax.servlet.http.HttpServletResponse。
4025 0