我正在尝试
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终结器。
答案 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.pem
和fullchain.pem
的串联,看起来像以下内容:
-----BEGIN CERTIFICATE-----
...
[your cert content]
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
[your fullchain cert content]
-----END CERTIFICATE-----