时间记录:2020-4-5
ingress作为k8s中的一种访问权限控制,其中可以支持的ngnix的负载,支持https,支持它的双向认证和单向认证,这里记录下使用情况。
一:制作证书
### 制作根证书
openssl req -newkey rsa:2048 -passout pass:123456 -keyout ca_rsa_private.pem -x509 -days 365 -out ca.crt -subj "/C=CN/ST=GD/L=SZ/O=COM/OU=NSP/CN=CA/emailAddress=youremail@qq.com"
### 制作服务端证书
openssl req -newkey rsa:2048 -passout pass:server -keyout server_rsa_private.pem -out server.csr -subj "/C=CN/ST=GD/L=SZ/O=COM/OU=NSP/CN=SERVER/emailAddress=youremail@qq.com"
openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca_rsa_private.pem -passin pass:123456 -CAcreateserial -out server.crt
### 制作客户端证书
openssl req -newkey rsa:2048 -passout pass:client -keyout client_rsa_private.pem -out client.csr -subj "/C=CN/ST=GD/L=SZ/O=COM/OU=NSP/CN=CLIENT/emailAddress=youremail@qq.com"
openssl x509 -req -days 365 -in client.csr -CA ca.crt -CAkey ca_rsa_private.pem -passin pass:123456 -CAcreateserial -out client.crt
二:导出个人身份证书和创建Secret
### 导出客户端证书
openssl pkcs12 -export -clcerts -in client.crt -inkey client.pem -out client.p12
### 创建Secret 根证书 服务端证书
kubectl create secret generic ca-secret --from-file=ca.crt=ca.crt -n ingress-nginx
kubectl create secret generic tls-secret --from-file=tls.crt=server.crt --from-file=tls.key=server_rsa_private.pem -n ingress-nginx
三:创建ingress资源
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/auth-tls-veri