如何通过Vault Agent Template将PEM证书注入SpringBoot的application.yml
解决Vault Agent Template生成Spring Boot YAML时PEM证书缩进错误
你的问题出在PEM证书的换行处理上——模板输出的证书只有第一行带了正确缩进,后面的行直接顶格,YAML解析器把这些行当成了新的顶级配置项,自然报语法错误。
解决方法很简单,用Vault模板的indent函数给证书的每一行统一加上缩进就行。
修改后的模板如下:
{{- with secret "path/to/kv/cert" }} spring: application: name: question ssl: bundle: pem: mycoolclient: keystore: certificate: | {{ .Data.data.cert | indent 24 }} {{- end }}
这里的indent 24是给证书每一行加24个空格,这个数字要和certificate: |行的缩进量再加2(YAML块字符串要求的额外缩进)对应。你可以根据自己的实际缩进层级调整,只要保证生成后的证书所有行缩进和手动配置时完全一致就行。
如果证书前后有多余的换行或空白字符,还可以配合trim函数清理:
{{ .Data.data.cert | trim | indent 24 }}
生成后检查下YAML的证书部分,确保所有行缩进统一,和手动运行的示例格式一致,Spring Boot就能正常解析了。
内容的提问来源于stack exchange,提问作者PatPanda
相关产品推荐
相关产品推荐

