我正在尝试使用 vault-agent 的模板功能将服务器特定的证书和密钥从 vault 下载到我的每个领事服务器。
推荐的方法是将通用名称和 SAN 设置为 HOSTNAME.DATACENTER.DOMAIN。我正在使用模板变量来构建特定于模板中节点的 CN,但我无法获得正确的语法以在“with secret”调用中正确使用该变量
模板现在看起来像这样
{{ with node }}
{{ $CN := {{ .Node.Node }}.{{ .Node.Datacenter }}.paradigm }}
{{ with secret "pki/issue/certs" "common_name=$CN" "alt_names=localhost $CN" "ip_sans=127.0.0.1" "ttl=72h" }}
{{- .Data.certificate -}}
{{ end }}
{{ end }}
当我在 with secret 调用中手动键入所需的 CN 时,它可以正常工作并写出证书,因此我的 Vault 访问正常工作。但是,当使用变量方法时,这会失败并显示“$CN 不是此角色允许的通用名称”。这似乎表明模板正在将“$CN”作为文字文本读取,而不是将其解析为设置值。
这对我来说似乎是一个语法错误,但在过去 2 天里尝试了多个选项,我希望有人能给我一个关于正确语法的指针(或者让我摆脱痛苦并告诉我我正在尝试不可能完成的任务)
在此先感谢您的帮助