如何为Terraform Enterprise配置Let's Encrypt TLS证书
生成符合Terraform Enterprise要求的Let's Encrypt证书
- 安装certbot工具
Debian/Ubuntu执行:apt update && apt install -y certbot
CentOS/RHEL执行:yum install -y certbot - 生成TLS证书,可根据你的网络环境选择HTTP验证或DNS验证,以下是HTTP公网验证示例:
certbot certonly --standalone -d <你的TFE服务域名> --agree-tos --email <你的联系邮箱> - 生成的有效证书文件默认存放在
/etc/letsencrypt/live/<你的TFE服务域名>/目录下,我们需要用到两个文件:- privkey.pem:未加密的域名私钥文件
- fullchain.pem:包含根证书、中间证书、域名证书的完整信任链文件
- 验证证书格式合法性:
验证私钥有效性:openssl rsa -in privkey.pem -check -noout
验证证书链完整性:openssl verify -CAfile fullchain.pem fullchain.pem
两条命令返回ok即代表证书符合要求。
注入证书到replicatedctl管理的TFE应用
- 先停止运行中的TFE应用,避免配置更新冲突:
replicatedctl app stop
执行replicatedctl app status确认应用状态变为stopped后再进行后续操作。 - 写入TLS配置到replicatedctl:
replicatedctl config set tls_key "$(cat /etc/letsencrypt/live/<你的TFE服务域名>/privkey.pem)" replicatedctl config set tls_cert "$(cat /etc/letsencrypt/live/<你的TFE服务域名>/fullchain.pem)" - 重启replicated相关服务加载配置:
systemctl restart replicated replicated-operator - 重新启动TFE应用:
replicatedctl app start - 验证配置生效:
执行replicatedctl config get tls_cert | openssl x509 -text -noout,确认返回的证书信息与你申请的Let's Encrypt证书一致即可。
注意:Let's Encrypt证书默认有效期为90天,建议配置自动续期任务,续期完成后重新执行上述证书注入、服务重启步骤即可完成证书更新,你可以将该流程写入certbot的post-hook钩子实现自动化操作。
内容的提问来源于stack exchange,提问作者Josiah
相关产品推荐
相关产品推荐

