gpt4 book ai didi

ssl - k8s 签名的证书在 pod 中不受信任

转载 作者:行者123 更新时间:2023-12-04 22:39:13 26 4
gpt4 key购买 nike

我正在尝试为部署到 k8s 集群的应用程序整理证书(在 docker-for-win 上运行,在 Windows 10 20H2 上运行 WSL2)。
我想使用 DNS 连接到服务,例如registry.default.svc.cluster.local ,我已经验证是可以访问的。我按照以下步骤创建了证书:

  • 创建 openssl.conf有内容
  • [ req ]
    default_bits = 2048
    prompt = no
    encrypt_key = no
    distinguished_name = req_dn
    req_extensions = req_ext

    [ req_dn ]
    CN = *.default.svc.cluster.local

    [ req_ext ]
    subjectAltName = @alt_names

    [ alt_names ]
    DNS.1 = *.default.svc.cluster.local
  • 使用 openssl req -new -config openssl.conf -out wildcard.csr -keyout wildcard.key 创建 csr 和 key 文件
  • 使用
  • 创建了证书签名请求

    cat <<EOF | kubectl create -f -
    apiVersion: certificates.k8s.io/v1beta1
    kind: CertificateSigningRequest
    metadata:
    name: wildcard_csr
    spec:
    groups:
    - system:authenticated
    request: $(cat wildcard.csr | base64 | tr -d '\n')
    usages:
    - digital signature
    - key encipherment
    - server auth
    EOF
  • 批准请求:kubectl certificate approve wildcard_csr
  • 提取crt文件:kubectl get csr wildcard_csr -o jsonpath='{.status.certificate}' | base64 -d > wildcard.crt
  • 删除了请求 kubectl delete csr wildcard_csr .

  • 然后我用 registry:2 启动了一个 pod图像并将其配置为使用 wildcard.crtwildcard.key文件。
    在另一个 pod 中,然后我尝试推送到该注册表,但收到错误
    Error response from daemon: Get https://registry.default.svc.cluster.local:2100/v2/: x509: certificate signed by unknown authority
    所以似乎在 pod 中,k8s CA 是不可信的。我对这个观察是否正确?如果是这样,我怎样才能让 k8s 信任自己(毕竟它是一个签署证书的 k8s 组件)?

    最佳答案

    我找到了一种仅通过更改 yaml 来实现此目的的方法:在我的机器上(不确定它的通用性),CA 证书在 service-account-token secret default-token-7g75m 中可用。 ( kubectl describe secrets 要找出名称,请查找类型为 kubernetes.io/service-account-token 的 secret ,其中包含条目 ca.crt )。
    因此,要信任此证书,请添加 volume

    name: "kube-certificate"
    secret:
    secretName: "default-token-7g75m"
    并在需要证书的 pod 中添加 volumeMount
    name: "kube-certificate"
    mountPath: "/etc/ssl/certs/kube-ca.crt",
    subPath: "ca.crt"

    关于ssl - k8s 签名的证书在 pod 中不受信任,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64892404/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com