服务网格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搭建和管理企业级网站应用
相关文章
|
6月前
|
人工智能 安全 Go
使用阿里云服务网格 ASM LLMProxy 插件保障大模型用户数据安全
本文介绍如何使用ASM LLMProxy动态为LLM请求添加API_KEY、使用模式匹配以及私有大模型判别请求敏感信息并根据判别结果拒绝请求等功能,帮助用户提升LLM场景下的安全水位。
|
6月前
|
负载均衡 Kubernetes 算法
服务网格 ASM 负载均衡算法全面解析
在本文中,笔者将解析服务网格的多种负载均衡算法的实现原理和使用场景,为服务网格负载均衡算法的选择提供参考。
|
6月前
|
监控 小程序 前端开发
基础入门-抓包技术&HTTPS协议&WEB&封包监听&网卡模式&APP&小程序
基础入门-抓包技术&HTTPS协议&WEB&封包监听&网卡模式&APP&小程序
198 0
|
7月前
|
域名解析 运维 网络协议
使用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的使用。
238 2
|
JSON 网络协议 Java
springboot服务端接口公网远程调试 - 实现HTTP服务监听【端口映射】
前后端分离项目中,在调用接口调试时候,我们可以通过cpolar内网穿透将本地服务端接口模拟公共网络环境远程调用调试,本次教程我们以Java服务端接口为例。
110 0
springboot服务端接口公网远程调试 - 实现HTTP服务监听【端口映射】
|
JSON 网络协议 Java
springboot服务端接口公网远程调试 - 实现HTTP服务监听【端口映射】
前后端分离项目中,在调用接口调试时候,我们可以通过cpolar内网穿透将本地服务端接口模拟公共网络环境远程调用调试,本次教程我们以Java服务端接口为例。
springboot服务端接口公网远程调试 - 实现HTTP服务监听【端口映射】
|
运维 Kubernetes Cloud Native
服务网格实施周期缩短 50%,丽迅物流基于阿里云 ACK 和 ASM 的云原生应用管理实践
通过本文介绍丽迅物流关于基于阿里云服务网格 ASM 如何加速企业业务云原生化进程的实践经验。
|
JSON 网络协议 Java
如何在Spring Boot服务端实现公网远程调试并进行HTTP服务监听
如何在Spring Boot服务端实现公网远程调试并进行HTTP服务监听
如何在Spring Boot服务端实现公网远程调试并进行HTTP服务监听
|
JSON 网络协议 Java
springboot服务端接口公网远程调试 - 实现HTTP服务监听【端口映射】
springboot服务端接口公网远程调试 - 实现HTTP服务监听【端口映射】
152 0
|
JSON Java 数据格式
springboot服务端接口外网远程调试,并实现HTTP服务监听(二)
springboot服务端接口外网远程调试,并实现HTTP服务监听(二)
125 0