备考ICA----Istio实验12---配置双向TLS Istio Ingress Gateway实验

备考ICA----Istio实验12—配置双向TLS Istio Ingress Gateway实验

本实验部分配置延续上个Istio实验11

1. 重新配置secret

重新配置secret使其带有ca证书可以验证客户端证书是否合法
先删除原有secret,再配置新的secret

# 删除原tls类型的secret
kubectl -n istio-system delete secret pana-credential
# 重新创建secret,带有ca的证书
kubectl create secret -n istio-system generic pana-credential \
--from-file=tls.key=example_certs_pana/pana.example.com.key \
--from-file=tls.crt=example_certs_pana/pana.example.com.crt \
--from-file=ca.crt=example_certs_root/example.com.crt
# 确认secret被正确创建
kubectl get  secrets -n istio-system 

在这里插入图片描述

2. Gateway配置

将Gateway设置为MUTUAL模式
mode: MUTUAL
tls-ingress/pana-tls-gateway-mutual.yaml

apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
 name: mygateway
spec:
 selector:
   istio: ingressgateway                # use istio default ingress gateway
 servers:
 - port:
     number: 443
     name: pana
     protocol: HTTPS
   tls:
     mode: MUTUAL
     credentialName: pana-credential    # must be the same as secret
   hosts:
   - pana.example.com

更新部署gateway

kubectl apply -f tls-ingress/pana-tls-gateway-mutual.yaml

3. 测试

3.1 没有客户端证书访问测试

curl -v -HHost:pana.example.com --resolve "pana.example.com:443:192.168.126.220" \
--cacert example_certs_root/example.com.crt "https://pana.example.com:443/hello"

在这里插入图片描述

3.2 生成客户端证书

mkdir example_certs_client
# 生成key和证书请求文件
openssl req -out example_certs_client/client.example.com.csr  -newkey rsa:2048 \
-nodes -keyout example_certs_client/client.example.com.key \
-subj "/CN=pana.example.com/O=client organization"
# 使用ca签发证书,用于区别其他证书这里有效期设置成2年
openssl x509 -req -sha256 -days 730 -CA example_certs_root/example.com.crt \
-CAkey example_certs_root/example.com.key \
-set_serial 1 -in example_certs_client/client.example.com.csr \
-out example_certs_client/client.example.com.crt

这样就在example_certs_client目录下生成了3个文件
在这里插入图片描述

3.3 使用client证书再次访问

带上客户端证书再次访问测试

curl -v -HHost:pana.example.com --resolve "pana.example.com:443:192.168.126.220" \
--cacert example_certs_root/example.com.crt \
--cert example_certs_client/client.example.com.crt \
--key example_certs_client/client.example.com.key \
"https://pana.example.com:443/hello"

通过之前定义的vs将请求转到了helloworld的后端
在这里插入图片描述
此时由于带了客户端证书,并且可以通过ca进行验证通过.这样就不再报错了
至此备考ICA----Istio实验12—配置双向TLS Istio Ingress Gateway实验完成.

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-31 13:14:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-31 13:14:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-31 13:14:04       82 阅读
  4. Python语言-面向对象

    2024-03-31 13:14:04       91 阅读

热门阅读

  1. redis根据key模糊删除

    2024-03-31 13:14:04       36 阅读
  2. 关系型数据库和非关系型数据库介绍

    2024-03-31 13:14:04       41 阅读
  3. JVM面试题(二)

    2024-03-31 13:14:04       36 阅读
  4. 当代深度学习模型介绍--长短期记忆网络(LSTMs)

    2024-03-31 13:14:04       41 阅读
  5. 鸿蒙4.0和鸿蒙Next有什么区别?

    2024-03-31 13:14:04       42 阅读
  6. 数据仓库的作用和价值

    2024-03-31 13:14:04       46 阅读
  7. 深入理解与使用go之函数与方法--泛型及堆栈

    2024-03-31 13:14:04       39 阅读