更新时间:2024-07-02 GMT+08:00

如何获取TLS密钥证书?

场景

当您的Ingress需要使用HTTPS协议时,创建Ingress时必须配置IngressTLS或kubernetes.io/tls类型的密钥。

以创建IngressTLS密钥证书为例,如图1

图1 创建密钥

这里上传的证书文件和私钥文件必须是配套的,不然会出现无效的情况。

解决方法

一般情况下,您需要从证书提供商处获取有效的合法证书。如果您需要在测试环境下使用,您可以自建证书和私钥,方法如下:

自建的证书通常只适用于测试场景,使用时界面会提示证书不合法,影响正常访问,建议您选择手动上传合法证书,以便通过浏览器校验,保证连接的安全性。

  1. 自己生成tls.key。
    openssl genrsa -out tls.key 2048

    将在当前目录生成一个tls.key的私钥。

  2. 用此私钥去签发生成自己的证书。
    openssl req -new -x509 -key tls.key -out tls.crt -subj /C=CN/ST=Beijing/O=Devops/CN=example.com -days 3650

    生成的私钥格式必须为:

    ----BEGIN RSA PRIVATE KEY-----
    ……………………………………………..
    -----END RSA PRIVATE KEY-----

    生成的证书格式必须为:

    -----BEGIN CERTIFICATE-----
    ……………………………………………………………
    -----END CERTIFICATE-----
  3. 导入证书。

    新建TLS密钥时,对应位置导入证书及私钥文件即可。

验证

通过浏览器访问Ingress地址可以正常访问,但因为是自己签发的证书和密钥,所以这里CA不认可,显示不安全。

图2 验证结果