Let‘s Encrypt介绍(免费、自动化、开放的SSL/TLS证书颁发机构CA,Certificate Authority)cert-manager
文章目录
- 没有 Let's Encrypt 之前
- Let's Encrypt 出现后
- 在 Kubernetes 中怎么用
- cert-manager
- staging 和 prod 是什么
- Staging(测试环境)
- Production(生产环境)
- 为什么 Kubernetes 项目几乎都用它
Let’s Encrypt是一个免费的、自动化的、开放的 SSL/TLS 证书颁发机构(CA,Certificate Authority)。
它解决的问题很简单:
让网站能够使用 HTTPS 加密通信,而不用花钱购买证书。
没有 Let’s Encrypt 之前
以前部署网站:
- 向证书机构购买 SSL 证书
- 提交域名验证资料
- 下载证书
- 手动安装到 Nginx / Apache
- 每年续费
过程比较麻烦,而且通常要收费。
Let’s Encrypt 出现后
只需要证明:
“这个域名是我的”
Let’s Encrypt 就会免费签发证书。
例如:
api.example.com验证通过后获得:
fullchain.pem privkey.pem然后配置:
ssl_certificate fullchain.pem; ssl_certificate_key privkey.pem;浏览器就能显示:
https://api.example.com 🔒 安全连接在 Kubernetes 中怎么用
你的截图里有:
gateway/cert-issuer.yaml内容:
Let's Encrypt staging + prod ClusterIssuer这通常意味着使用:
cert-manager
Kubernetes 最常见的自动证书管理方案。
架构:
Internet │ ▼ Kong Ingress │ ▼ cert-manager │ ▼ Let's Encrypt工作流程:
创建 Ingress │ ▼ cert-manager发现需要证书 │ ▼ 向Let's Encrypt申请 │ ▼ 自动验证域名 │ ▼ 生成TLS Secret │ ▼ Kong自动加载证书最终:
https://api.xxx.com https://auth.xxx.com https://app.xxx.com全部自动获得 HTTPS。
staging 和 prod 是什么
你截图中的:
Let's Encrypt staging + prod ClusterIssuer一般会定义两个 Issuer:
Staging(测试环境)
server:https://acme-staging-v02.api.letsencrypt.org/directory特点:
- 不限申请次数
- 证书不受浏览器信任
- 用于调试
浏览器会提示:
Your connection is not private这是正常的。
Production(生产环境)
server:https://acme-v02.api.letsencrypt.org/directory特点:
- 真正可用
- 浏览器信任
- 有申请频率限制
获得的证书就是正式 HTTPS 证书。
为什么 Kubernetes 项目几乎都用它
原因很简单:
| 方案 | 成本 | 自动续期 | Kubernetes集成 |
|---|---|---|---|
| 商业SSL | 收费 | 通常手动 | 一般 |
| Let’s Encrypt | 免费 | 自动 | 非常好 |
所以现在 Kubernetes 的标准组合几乎是:
Kong / Nginx Ingress + cert-manager + Let's Encrypt你现在这个架构里的cert-issuer.yaml,本质上就是:
定义 cert-manager 如何向 Let’s Encrypt 申请和续期 HTTPS 证书。
这是目前 Kubernetes 公网服务部署中最主流、最接近事实标准(de facto standard)的 HTTPS 方案。
