我试图在入口中安装我的组织客户端证书链(该证书对安装在所有组织用户笔记本电脑上,因此只有组织用户可以访问该服务(。我用下面的命令创建了一个秘密
kubectl create secret generic auth-tls-chain --from-file=org_client_chain.pem --namespace=default
secret/auth-tls-chain created
并创建了我的入口如下
metadata:
name: my-new-ingress
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/auth-tls-verify-client: "on"
nginx.ingress.kubernetes.io/auth-tls-secret: "default/auth-tls-chain"
nginx.ingress.kubernetes.io/auth-tls-verify-depth: "3"
nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream: "true"
spec:
rules:
- host: example.com
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: hello-one
port:
number: 80
tls:
- hosts:
- example.com
secretName: echo-tls
但是当我尝试访问我的域时,我得到了一个";403禁止;错误我打开了nginx配置文件,可以看到证书有一些问题
kubectl exec ingress-nginx-controller-5fbf49f7d7-sjvpw cat /etc/nginx/nginx.conf
# error obtaining certificate: local SSL certificate default/auth-tls-chain was not found
return 403;
我的客户端证书链看起来像下面的.PEM格式的证书链。
-----BEGIN CERTIFICATE-----
sdfkhdskhflds
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
saflsafhl
sfadfasdf
-----END CERTIFICATE-----
我尝试使用以下命令创建机密。
kubectl创建机密通用ca机密--来自file=org_client_chain.pem=org_cClient_chain.dem
但没有运气。有人能帮我吗?
感谢
如Github链接中所述,您必须使用包含完整证书颁发机构链的ca.crt证书文件名。