我试图在入口中安装组织客户端证书链(此证书的一对安装在所有组织用户膝上型计算机上,以便只有组织用户可以访问该服务)。我用下面的命令创建了一个秘密
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-----但没有运气。有人能帮我吗?
谢谢
发布于 2022-10-08 03:02:52
正如Github 链接中提到的,您必须使用证书文件名作为包含完整证书颁发机构链的ca.crt。
https://stackoverflow.com/questions/73931939
复制相似问题