首页 > 其他分享 >Istio上客户端与网关建立TLS通信

Istio上客户端与网关建立TLS通信

时间:2022-11-30 23:37:09浏览次数:57  
标签:TLS 网关 -- root Istio yang master fe com

[root@master certificates]# openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -subj '/O=Yang Inc./CN=yang.com' -keyout yang.com.key -out yang.com.crt

[root@master certificates]# openssl req -out fe.yang.com.csr -newkey rsa:2048 -nodes -keyout fe.yang.com.key -subj "/CN=fe.yang.com/O=fe organization"

[root@master certificates]# openssl x509 -req -days 365 -CA yang.com.crt -CAkey yang.com.key -set_serial 2 -in fe.yang.com.csr -out fe.yang.com.crt

[root@master certificates]# kubectl create secret tls fe-credential --key=fe.yang.com.key --cert=fe.yang.com.crt -n istio-system
[root@master certificates]# ll
total 20
-rw-r--r-- 1 root root 1029 Nov 30 22:54 fe.yang.com.crt
-rw-r--r-- 1 root root  928 Nov 30 22:53 fe.yang.com.csr
-rw-r--r-- 1 root root 1704 Nov 30 22:53 fe.yang.com.key
-rw-r--r-- 1 root root 1147 Nov 30 22:52 yang.com.crt
-rw-r--r-- 1 root root 1708 Nov 30 22:52 yang.com.key
[root@master certificates]# kubectl get secret
NAME            TYPE     DATA   AGE
docker-config   Opaque   1      26d

 

[root@master fe-proxy]# kubectl apply -f ./
gateway.networking.istio.io/proxy-gateway unchanged
virtualservice.networking.istio.io/proxy unchanged
[root@master fe-proxy]# cat gateway-proxy.yaml 
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
  name: proxy-gateway
  namespace: istio-system        # 要指定为ingress gateway pod所在名称空间
spec:
  selector:
    app: istio-ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "fe.yang.com"
    tls:
      httpsRedirect: true
  - port:
      number: 443
      name: https
      protocol: HTTPS
    tls:
      mode: SIMPLE
      credentialName: fe-credential
    hosts:
    - "fe.yang.com"
---
[root@master fe-proxy]# cat virtualservice-proxy.yaml 
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: proxy
  namespace: default
spec:
  hosts:
  - "fe.yang.com"
  gateways:
  - istio-system/proxy-gateway
  - mesh
  http:
  - name: default
    route:
    - destination:
        host: proxy
        port:
          number: 80 
---

直接curl访问

[root@master certificates]# curl fe.yang.com      #无返回
[root@master certificates]# curl -I fe.yang.com   #重定向到https://fe.yang.com
HTTP/1.1 301 Moved Permanently
location: https://fe.yang.com/
date: Wed, 30 Nov 2022 15:02:51 GMT
server: istio-envoy
transfer-encoding: chunked

[root@master certificates]# curl -v https://fe.yang.com  #证书认证失败

加-k参数 跳过对端证书校验过程

[root@master certificates]# curl -v -k https://fe.yang.com
* About to connect() to fe.yang.com port 443 (#0)
*   Trying 10.211.55.100...
* Connected to fe.yang.com (10.211.55.100) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* skipping SSL peer certificate verification
* SSL connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate:
* 	subject: O=fe organization,CN=fe.yang.com
* 	start date: Nov 30 14:54:28 2022 GMT
* 	expire date: Nov 30 14:54:28 2023 GMT
* 	common name: fe.yang.com
* 	issuer: CN=yang.com,O=Yang Inc.
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: fe.yang.com
> Accept: */*
> 
< HTTP/1.1 200 OK
< date: Wed, 30 Nov 2022 15:05:24 GMT
< content-length: 157
< x-envoy-upstream-service-time: 24
< server: istio-envoy
< 
Proxying value: iKubernetes demoapp v1.0 !! ClientIP: 127.0.0.6, ServerName: demoappv10-85cf87cdb4-mnppr, ServerIP: 10.244.166.130!
 - Took 20 milliseconds.
* Connection #0 to host fe.yang.com left intact

可以直接curl -k访问

[root@master certificates]# curl -k https://fe.yang.com
Proxying value: iKubernetes demoapp v1.0 !! ClientIP: 127.0.0.6, ServerName: demoappv10-85cf87cdb4-cttnn, ServerIP: 10.244.104.33!
 - Took 14 milliseconds.
[root@master certificates]# curl -k https://fe.yang.com
Proxying value: iKubernetes demoapp v1.0 !! ClientIP: 127.0.0.6, ServerName: demoappv10-85cf87cdb4-cttnn, ServerIP: 10.244.104.33!
 - Took 23 milliseconds.

 

标签:TLS,网关,--,root,Istio,yang,master,fe,com
From: https://www.cnblogs.com/zyyang1993/p/16940153.html

相关文章

  • Istio开启mtls请求503问题分析
    背景 为测试Istio流量管理,将两个服务sleep、flaskapp的两个版本v1、v2(部署文件见参考链接)部署到Istio环境中,通过sleep-v1向flaskapp发起调用http://flaskapp/env/version......
  • 微服务五种开源API网关实现组件对比
    微服务架构是当下比较流行的一种架构风格,它是一种以业务功能组织的服务集合,可以持续交付、快速部署、更好的可扩展性和容错能力,而且还使组织更容易去尝试新技术栈。微服务具......
  • Tomcat禁用 TLS 1.0 并替换为 TLS 1.2 或更高版本。
    添加配置项:protocols="TLSv1.2"<Connectorexecutor="tomcatThreadPool"port="443"protocol="org.apache.coyote.http11.Http11NioProtocol"......
  • API网关【gateway 】- 1
    最近在公司进行API网关重写,公司内采用serverMesh进行服务注册,调用,这里结合之前学习对API网关服务进行简单的总结与分析。网关的单节点场景:网关的多节点场景:这里的多节点是根......
  • API网关【gateway 】- 2
    最近在公司进行API网关重写,公司内采用serverMesh进行服务注册,调用,这里结合之前学习对API网关服务进行简单的总结与分析。由于采用了大量的nginx相关的东西,所以在此记录一下:......
  • windows IPv6自动不可用、网关30分钟消失处理问题排查处理。
    公司的华为交换机遇到了一个奇葩的问题。不管是指定还是DHCP获取。IPv6网关30分钟自动消失了。导致ipv6不可用。查找资料更改期设置老化时间2天以及RA报文定期发送网......
  • Istio网格中的分布式跟踪
    全局配置  部署网格时,通过IstioOperator配置中的MeshConfig段进行全局配置  部署网格后,通过IstioOperator配置中的MeshConfig段进行全局配置meshConfig:......
  • Istio启用网格访问日志
    在IstioOperator中,通过MeshConfig启用  accessLogFile访问日志的日志文件路径,例如/dev/stdout,空值表示禁用该日志;  accessLogFormat访问日志的日志......
  • Istio可观测性
    获取命令kubectlexecsleep-78ff5975c6-75q5z-cistio-proxy--pilot-agentrequestGET/stats#stats格式kubectlexecsleep-78ff5975c6-75q5z-cistio-proxy-......
  • 从工业物联网网关讲起:工业数据采集有何特点
    工业物联网是连接物理世界和数字世界的桥梁,是数据的出入通道。在生产现场中,物联网感知层数据来源十分多样,来自各种多源异构设备和系统,带来庞大的数据量,因此如何从这些设备和......