kubernetes ingress配置HTTPS/TLS证书

Ingress是Kubernetes中的一个概念,用于将入站连接路由到不同的服务。这可以通过不同方式实现。
生成证书文件

1
openssl req -x509 -nodes -days 2920 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=*.idcsec.com/O=nginxsvc"

导入证书文件到k8s secret

1
kubectl create secret tls https-secret --key tls.key --cert tls.crt

或者使用yaml

1
2
3
4
5
6
7
8
apiVersion: v1
kind: Secret
type: kubernetes.io/tls
metadata:
name: mytlssecret
data:
tls.crt: <base64 encoded cert>
tls.key: <base64 encoded key>

配置ingress

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: test
annotations:
ingress.kubernetes.io/ssl-redirect: "False" #设置是否强制跳转 false| true
spec:
tls:
- hosts:
- www.idcsec.com
secretName: https-secret
rules:
- host: www.idcsec.com
http:
paths:
- path: /
backend:
serviceName: test
servicePort: 80

校验证书信息

1
openssl x509 -in tls.crt  -noout -text

Client Certificate Authentication
TLS证书