【问题标题】:Does ingress TLS secret need a SSL private key for __INGRESS_SECRET__?入口 TLS 机密是否需要 __INGRESS_SECRET__ 的 SSL 私钥?
【发布时间】:2019-07-22 16:02:35
【问题描述】:

我正在尝试

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 终结器。

【问题讨论】:

  • key 总是指 x509 证书中的私钥。至于证书本身,您应该将cert.pemfullchain.pem 合并到一个tls.crt 文件中,并将其用作您的公钥。您可以使用 openssl 或手动合并文件,确保 cert.pem 的内容出现在 fullchain.pem 之前

标签: ssl kubernetes


【解决方案1】:

您是对的,您需要为tls.key 部分提供您的私钥。但是,使用cert-manager 自动化letsencrypt 证书生成过程是一个很好的做法。看看这个tutorial。 Dong so 会在集群上自动为你创建 tls secret 资源。

您的 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-----

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 2013-04-17
    相关资源
    最近更新 更多