服务网格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
相关文章
|
负载均衡 NoSQL 算法
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
这篇文章是关于Java面试中Redis相关问题的笔记,包括Redis事务实现、集群方案、主从复制原理、CAP和BASE理论以及负载均衡算法和类型。
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
|
数据采集 传感器 边缘计算
不同类型的工业网关有何区别?
【8月更文挑战第8天】工业网关关键于工业自动化中的连接与数据转换,主要分为协议转换网关、数据采集网关及边缘计算网关。协议转换网关解决不同工业协议间的兼容性问题;数据采集网关负责收集并初步处理多类设备数据;边缘计算网关则在此基础上增加了现场数据处理能力,减轻云端负担。选型时需依据具体需求与系统结构。
616 2
|
数据采集 存储 算法
服务网格ASM使用FAQ之(4):如何基于集群内服务层和网格层跨集群使用流量镜像
流量镜像主要用于能够在不以任何方式影响最终客户端的情况下测试具有实际生产流量的服务。 在实践中,无论是在生产环境还是非生产环境中,将生产流量镜像到测试集群,是降低新部署风险的一种非常有效的方法。像大型互联网企业,多年来也一直在坚持这么做。 服务网格技术提供了流量镜像(Traffic Mirroring)的功能,也称为影子流量(Traffic shadowing),会将实时流量的副本发送到镜像服务, 镜像流量发生在主服务的关键请求路径之外。
656 0
服务网格ASM使用FAQ之(4):如何基于集群内服务层和网格层跨集群使用流量镜像
|
Java Go
Go Web编程实战(8)----创建HTTP与HTTPS服务器端
Go Web编程实战(8)----创建HTTP与HTTPS服务器端
400 0
Go Web编程实战(8)----创建HTTP与HTTPS服务器端
|
负载均衡 前端开发 网络协议
【服务网格架构】Envoy 部署类型
【服务网格架构】Envoy 部署类型
|
Kubernetes 数据安全/隐私保护 容器
服务网格ASM使用FAQ之(3):如何在ASM网关中通过配置TLS协议版本来增强安全性
一个增强网站安全性的最佳做法是禁用早期版本的 TLS (TLS v1.0 和 1.1)并仅启用 TLS v1.2 和更高版本。这背后的原因是包括 TLS v1.0 在内的早期 TLS 版本存在已知的安全问题,并且使用功能强大的工具和系统进行了解密,导致传输中的数据泄露。禁用TLS v1.2 中的弱密码也很重要。您可以在 ASM 网关中通过配置TLS协议版本来增强安全性, 从而简单地解决上述问题。前
403 0
|
Kubernetes 网络安全 数据安全/隐私保护
服务网格ASM使用FAQ之(3):如何在ASM网关中通过配置TLS协议版本来增强安全性
包括TLS v1.0在内的早期TLS版本存在已知的安全问题,并且使用功能强大的工具和系统进行了解密,导致传输中的数据泄露。因此,一个增强网站安全性的最佳做法是禁用早期版本的TLS(v1.0和v1.1)并仅启用TLS v1.2及更高版本。同时,禁用TLS v1.2中的弱密码也非常重要。 本文介绍如何在ASM网关配置TLS协议版本,增强网站安全性。
523 0
|
负载均衡 前端开发 应用服务中间件
Tomcat的负载均衡和动静分离(与nginx联动)
总的来说,负载均衡和动静分离是提高Web应用性能的两个重要手段。通过合理的配置和使用,我们可以让Web应用更好地服务于用户。
406 21
|
缓存 负载均衡 算法
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
422 2
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
991 3