从零开始的Linux运维屌丝之路,资源免费分享平台   运维人员首选:简单、易用、高效、安全、稳定、社区活跃的开源软件
  • 首页
  • K8S
  • Ingress Nginx 配置ssl双向认证

Ingress Nginx 配置ssl双向认证

发布:蔺要红01-01分类: K8S

双向认证一般都是别人使用自己的key生成csr给到我们, 然后我们用CA签名证书,然后将签名后的证书给到别人,后续别人使用证书和自己的私钥就可以访问服务。

执行以下命令,创建自签的CA证书。

openssl req -x509 -sha256 -newkey rsa:4096 -keyout ca.key -out ca.crt -days 3650 -nodes -subj '/CN=Fern Cert Authority'


# 生产client csr文件-- 一般是由对方提供csr文件
openssl req -new -newkey rsa:4096 -keyout client.key -out client.csr -nodes -subj '/CN=Fern'


# 执行以下命令,使用根证书签发Client端请求文件,生成Client端证书。

openssl x509 -req -sha256 -days 3650 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 02 -out client.crt 

配置双向认证 创建secret

kubectl create secret generic ca-secret --from-file=ca.crt=ca.crt

配置ingress

主要是     nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream: "true"
 

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/auth-tls-verify-client: "on"
    nginx.ingress.kubernetes.io/auth-tls-secret: "default/ca-secret"
    nginx.ingress.kubernetes.io/auth-tls-verify-depth: "1"
    nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream: "true"
  name: nginx-test
  namespace: default
spec:
  rules:
  - host: foo.bar.com
    http:
      paths:
      - backend:
          serviceName: http-svc
          servicePort: 80
        path: /
  tls:
  - hosts:
    - foo.bar.com
    secretName: tls-secret

 
温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,如有侵权我会在24小时之内删除!

欢迎使用手机扫描访问本站