入口TLS机密是否需要__INGRESS_SECRET__的SSL私钥?

时间:2019-02-28 17:02:43

标签: ssl kubernetes

我正在尝试

kubectl create secret tls foo-secret --key /tls.key --cert /tls.crt

从我使用过的由LetsEncrypt制成的密钥和证书中提取。对于自签名证书,此过程很有意义,但是LetsEncrypt制作的文件如下所示:

cert.pem
chain.pem
fullchain.pem
privkey.pem

我可以转换那些pem文件,我不知道--key是公共密钥还是私有密钥,这里唯一的选择是privkey.pem。我认为证书就是证书。

我可以将private.pem转换为:

openssl rsa -outform der -in privkey.pem -out private.key

cert.pem一起使用:

openssl x509 -outform der -in cert.pem -out cert.crt

这是正确的过程吗?由于我将使用ingress oauth的这个机密代替__INGRESS_SECRET__,因此此入口是否应该具有私钥?此入口充当其他用途的TLS终结器。

1 个答案:

答案 0 :(得分:0)

您是正确的,您需要提供tls.key部分的私钥。但是,使用cert-manager自动执行letencrypt证书生成过程是个好习惯。看看这个tutorial。 Dong会自动在群集上为您创建tls秘密资源。

您的 tls.key 文件是私钥,其开始和结束如下:

-----BEGIN RSA PRIVATE KEY-----

    ... [your private key]

-----END RSA PRIVATE KEY-----

您的 tls.crt 将是cert.pemfullchain.pem的串联,看起来像以下内容:

-----BEGIN CERTIFICATE-----

    ...
    [your cert content]

-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----

    ...
    [your fullchain cert content]

-----END CERTIFICATE-----