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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 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"}}
相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
运维 负载均衡
【运维知识进阶篇】用阿里云部署kod可道云网盘项目(HTTPS证书+负载均衡+两台web)(三)
【运维知识进阶篇】用阿里云部署kod可道云网盘项目(HTTPS证书+负载均衡+两台web)(三)
295 0
|
6月前
|
运维 Kubernetes 安全
利用服务网格实现全链路mTLS(一):在入口网关上提供mTLS服务
阿里云服务网格(Service Mesh,简称ASM)提供了一个全托管式的服务网格平台,兼容Istio开源服务网格,用于简化服务治理,包括流量管理和拆分、安全认证及网格可观测性,有效减轻开发运维负担。ASM支持通过mTLS提供服务,要求客户端提供证书以增强安全性。本文介绍如何在ASM入口网关上配置mTLS服务并通过授权策略实现特定用户的访问限制。首先需部署ASM实例和ACK集群,并开启sidecar自动注入。接着,在集群中部署入口网关和httpbin应用,并生成mTLS通信所需的根证书、服务器证书及客户端证书。最后,配置网关上的mTLS监听并设置授权策略,以限制特定客户端对特定路径的访问。
179 2
|
6月前
|
Kubernetes 安全 Cloud Native
解锁安全新纪元:利用服务网格Istio,打造全链路mTLS加密隧道,从入口网关到出口网关,守护数据安全的每一步
【8月更文挑战第2天】随着云原生技术的发展,服务网格(Service Mesh)如Istio已成为微服务架构的核心,通过双向TLS(mTLS)确保通信安全。首先,在Kubernetes部署Istio以管理服务通信。接着,配置入口网关实现所有入向流量的加密处理,防止数据泄露。最后,通过配置Sidecar代理如Envoy,确保服务网格安全访问外部mTLS服务,从而构建起全链路的数据安全防护。
110 11
|
6月前
|
Kubernetes 安全 数据安全/隐私保护
利用服务网格实现全链路mTLS(二):通过出口网关访问外部mTLS服务
阿里云服务网格(Service Mesh,简称ASM)提供了一个全托管式的服务网格平台,兼容Istio开源服务网格,简化服务治理,包括流量管理、服务间通信安全及网格可观测性。ASM出口网关统一管理网格内的出口流量,实现全链路加密通信与精细访问控制。本文介绍如何配置ASM出口网关以管理出口流量并发起mTLS通信,涉及配置ServiceEntry、创建出口网关、设置虚拟服务及目标规则等步骤,最终实现安全可控的mTLS服务访问。
190 3
|
负载均衡 Dubbo 应用服务中间件
Nginx系列教程(11) - HTTP动态负载均衡(一)
Nginx系列教程(11) - HTTP动态负载均衡(一)
289 0
|
9月前
|
域名解析 运维 网络协议
使用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的使用。
273 2
|
9月前
|
XML JSON 编解码
HTTP Content-Type 类型解析
【1月更文挑战第10天】HTTP Content-Type 类型解析
|
负载均衡 应用服务中间件 Linux
Nginx系列教程(12) - HTTP动态负载均衡(二)
Nginx系列教程(12) - HTTP动态负载均衡(二)
246 1
|
9月前
|
负载均衡 安全 应用服务中间件
Nginx + Tomcat+HTTP/HTTPS实现负载均衡实例
Nginx + Tomcat+HTTP/HTTPS实现负载均衡实例
241 0
|
JSON Java 数据格式
http请求传参的几种类型
postman及java应用中对http请求传参的类型总结
290 0