返回

为 Kubernetes 本地开发环境轻松配置自签名 TLS 证书

后端

前言

在本地 Kubernetes 环境中使用 TLS/SSL 证书可以带来诸多好处。首先,它可以为您的 API 通信提供加密保护,防止未经授权的访问。其次,它可以使您的集群看起来更加专业和值得信赖。最后,它可以帮助您避免浏览器中的安全警告,让您的开发体验更加顺畅。

在本文中,我们将向您展示如何在本地 Kubernetes 环境中配置和使用自签 TLS/SSL 证书。我们将使用 Traefik 作为我们的 ingress 控制器,因为它简单易用,并且可以与任何 Kubernetes 集群一起使用。

先决条件

在开始之前,您需要确保已经满足以下先决条件:

  • Kubernetes 集群
  • Traefik 安装在您的集群中
  • 一个域名,指向您的 Kubernetes 集群
  • 一个文本编辑器

第 1 步:创建证书颁发机构 (CA)

首先,我们需要创建一个证书颁发机构 (CA)。CA 将负责签发 TLS/SSL 证书。

openssl genrsa -out ca.key 2048
openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.crt

这将在当前目录中生成两个文件:ca.key 和 ca.crt。ca.key 是私钥,ca.crt 是证书。

第 2 步:创建证书签名请求 (CSR)

接下来,我们需要创建一个证书签名请求 (CSR)。CSR 是您发送给 CA 以请求证书的文件。

openssl req -new -key your-domain.key -out your-domain.csr

这将在当前目录中生成两个文件:your-domain.key 和 your-domain.csr。your-domain.key 是私钥,your-domain.csr 是 CSR。

第 3 步:将 CSR 发送给 CA

现在,我们需要将 CSR 发送给 CA 以请求证书。

openssl x509 -req -in your-domain.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out your-domain.crt

这将在当前目录中生成一个文件:your-domain.crt。这是一个自签证书,您可以将其用于您的 Kubernetes 集群。

第 4 步:配置 Traefik

现在,我们需要配置 Traefik 以使用我们的自签证书。

在您的 Traefik 配置文件中,添加以下内容:

tls:
  certificates:
    - key: /path/to/your-domain.key
      cert: /path/to/your-domain.crt

将 /path/to/your-domain.key 替换为您的私钥的路径,将 /path/to/your-domain.crt 替换为您的证书的路径。

第 5 步:重启 Traefik

现在,我们需要重启 Traefik 以使更改生效。

kubectl rollout restart deployment traefik

第 6 步:测试您的证书

现在,您可以使用以下命令测试您的证书:

curl --insecure https://your-domain

您应该会看到一个安全连接消息。

总结

现在,您已经知道如何在本地 Kubernetes 环境中配置和使用自签 TLS/SSL 证书了。这将有助于您增强安全性和便利性。如果您有任何问题,请随时留言。