我可以使用 .pfx 证书通过 kubectl 命令创建 kubernetes 密钥吗?

not*_*k27 3 kubernetes kubernetes-secrets

下面的命令给出了一个错误:error: flag key is required

kubectl create secret tls k8-secret2 \
    -n ingress-tls-test1 \
    --cert ingress-tls-test1.pfx
Run Code Online (Sandbox Code Playgroud)

我可以使用 .crt 和 .key 文件创建秘密:

kubectl create secret tls aks-ingress-tls \
    --namespace ingress-basic \
    --key aks-ingress-tls.key \
    --cert aks-ingress-tls.crt
Run Code Online (Sandbox Code Playgroud)

Til*_*ilo 8

我今天需要从 .pfx 文件创建一个 kube tls 秘密 致谢: https: //adolfi.dev/blog/tls-kubernetes/

## you will enter the pfx PW on on the CMD/terminal
openssl pkcs12 -in pfx-filename.pfx -nocerts -out key-filename.key
openssl rsa -in key-filename.key -out key-filename-decrypted.key
openssl pkcs12 -in pfx-filename.pfx -clcerts -nokeys -out crt-filename.crt  ##remove clcerts to get the full chain in your cert
kubectl create secret tls your-secret-name --cert crt-filename.crt --key key-filename-decrypted.key
Run Code Online (Sandbox Code Playgroud)


Kam*_*san 5

在创建 的 k8s(最多v1.19)秘密时type: kubernetes.io/tls,您必须提供两个密钥;tls.keytls.crt。如果您用来kubectl创建密钥,则可以使用--cert--key标志来提供这些密钥的值。

的公钥证书--cert 必须采用 .PEM 编码(Base64 编码的 DER 格式),并且与给定的--key.

由于.pfx证书使用不同的编码并将所有内容存储到单个可加密文件中,因此您没有单独的证书和密钥文件来满足要求。

但是您可以创建Opaque类型的机密而不是TLS

$ kubectl create secret generic k8-secret2 --from-file=crt.pfx=./ingress-tls-test1.pfx
Run Code Online (Sandbox Code Playgroud)