【问题标题】:ssl_client_certificate failed 403 forbiddenssl_client_certificate 失败 403 禁止
【发布时间】: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-----
  1. 我尝试使用以下命令创建秘密。

    kubectl create secret generic ca-secret --from-file=org_client_chain.pem=org_client_chain.pem

    但没有运气。有人可以在这里帮助我吗?

    谢谢

【问题讨论】:

    标签: kubernetes-ingress nginx-ingress


    【解决方案1】:

    正如 Github link 中提到的,您必须使用证书文件名作为 ca.crt 包含完整的证书颁发机构链。

    【讨论】:

      猜你喜欢
      • 2020-05-04
      • 2014-11-15
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 2016-08-27
      • 2022-10-01
      相关资源
      最近更新 更多