如何在ALB后端的Vault中利用ACM启用TLS并导入证书?
在ALB后端的Vault中启用ACM证书加密的两种方案
推荐方案:TLS终止于ALB(符合AWS最佳实践)
这种方式无需在Vault侧配置TLS,由ALB处理HTTPS终止,更易维护且契合AWS架构设计:
- 登录AWS控制台进入ALB配置页,添加443端口的HTTPS监听
- 在监听配置中选择已有的ACM证书(需确保证书覆盖ALB的访问域名)
- 将ALB的目标组指向Vault的HTTP端口(默认8200)
- 修改Vault配置文件,设置
api_addr为ALB的HTTPS访问地址,保证Vault生成的回调链接为HTTPS:api_addr = "https://your-alb-domain.com:8200" - 重启Vault服务完成配置
备选方案:在Vault侧直接启用TLS(需持有证书私钥)
仅当你自行上传证书到ACM并保留了私钥文件时可采用此方案(ACM生成的证书无法导出私钥,无法用于该场景):
- 准备PEM格式的证书文件:
- 证书文件(
cert.pem):包含你的域名证书 - 私钥文件(
private-key.pem):上传到ACM时留存的私钥 - 证书链文件(
chain.pem):ACM提供的中间证书链
- 证书文件(
- 修改Vault主配置文件(如
vault.hcl),添加TLS监听配置:listener "tcp" { address = "0.0.0.0:8200" tls_disable = false tls_cert_file = "/opt/vault/certs/cert.pem" # 替换为你的证书实际路径 tls_key_file = "/opt/vault/certs/private-key.pem" # 替换为你的私钥实际路径 tls_client_ca_file = "/opt/vault/certs/chain.pem" # 可选,用于客户端证书认证 } - 调整证书文件权限,确保Vault进程可读取:
chmod 600 /opt/vault/certs/*.pem chown vault:vault /opt/vault/certs/*.pem - 重启Vault服务,验证TLS是否生效:
curl https://your-vault-ip:8200/v1/sys/health
关键注意事项
- ACM生成的证书无法导出私钥,因此不能直接用于Vault侧的TLS配置,只能采用ALB终止TLS的方案
- 若Vault部署在容器中,需将证书文件挂载到容器内部,并确保配置中的路径正确
- 无论采用哪种方案,都需确保Vault的
api_addr设置为对外可访问的HTTPS地址,避免客户端出现地址不一致问题
内容的提问来源于stack exchange,提问作者Donal
相关产品推荐
相关产品推荐

