【发布时间】:2022-10-08 11:02:52
【问题描述】:
我试图在入口中安装我的组织客户端证书链(此证书对安装在所有组织用户的笔记本电脑上,因此只有组织用户可以访问该服务)。我使用以下命令创建了一个秘密
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 Forbidden”错误。我打开了 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 create secret generic ca-secret --from-file=org_client_chain.pem=org_client_chain.pem
但没有运气。有人可以在这里帮助我吗?
谢谢
【问题讨论】:
标签: kubernetes-ingress nginx-ingress