网络技术
性能优化
知识科普
技术分享
故障处理
Devops
KVM 虚拟化
无米之炊
Charmed-Kubernetes
ChromeOS
安全的使用 Cert Manager
type
status
date
slug
summary
tags
category
icon
password
前言
在 Kubernetes 上使用 Cert Manager 的 ACME DNS Challenge 方式能够很轻松的为域名签发一张受信任的泛域名证书。然而由于 ACME-DNS 为了能够验证域名的所有权需要修改 DNS 记录,因此需要提供 DNS 服务商的 API Secret,如果它被泄漏了呢?
更安全的实现
简单来说就是实现通过 A 域名为 B 域名申请证书。
在下面的例子中,我们使用 acme.exampleacmeverify.info 为 example.net 生成一张泛域名证书。你可以将 acme.exampleacmeverify.info 单独托管到一个 DNS 服务商(本文中将其单独托管到阿里云),从而无需使用 example.net 的 API Secret.
Cert Manager
在 Kubernetes 上部署 Cert Manager
添加解析
在 example.net 的域名下添加一个 CNAME 解析。
在 exampleacmeverify.info 的域名下添加一个 NS 解析。
使用 AliDNS-Webhook
本文以 AliDNS 为例,你也可以使用 CloudFlare.
在阿里云上,添加子域
acme.exampleacmeverify.info
添加子域的时候,需要在主域 exampleacmeverify.info 添加 TXT 验证记录
生成能够管理子域
acme.exampleacmeverify.info
的 API Secret,随后在 Kubernetes 中创建一个 Secret,用于管理 AliDNS部署 alidns-webhook
获取下来的 yaml 不要直接用,要将里面的示例信息换掉
sed -i 's|acme.yourcompany.com|acme.exampleacmeverify.info|g' bundle.yaml
有必要的话,可以把里面涉及的 Images Pull 下来,并传到自己的镜像仓库。
创建 Clusterissuer
申请证书
Loading...
Last update: 2022-05-18