公司动态

AWS Workload Credentials Provider 证书管理入门:自动将 ACM 证书导出为 PEM 文件

📅 2026/8/19 18:35:14
AWS Workload Credentials Provider 证书管理入门:自动将 ACM 证书导出为 PEM 文件
AWS Workload Credentials Provider 证书管理入门自动将 ACM 证书导出为 PEM 文件【免费下载链接】aws-workload-credentials-providerThe AWS Workload Credentials Provider (formerly the AWS Secrets Manager Agent) is a client-side solution that helps you standardize how you consume credentials from AWS services across your compute environments.项目地址: https://gitcode.com/gh_mirrors/aw/aws-workload-credentials-providerAWS Workload Credentials Provider前身是 AWS Secrets Manager Agent是 AWS 官方开源的客户端凭据管理方案其中的ACM 证书管理能力可以把 AWS Certificate ManagerACM里的证书自动导出为本地 PEM 文件并定时刷新帮你告别手动下载证书、手工部署的繁琐流程。 简单说配置一次之后证书自动更新、自动写入指定路径你的 Nginx、Tomcat 等服务永远用到最新证书。为什么需要自动导出 ACM 证书传统做法里从 ACM 导出证书要经过控制台或 CLI 手动操作且导出后没有自动续期机制证书快过期时需要人工重新导出、重新部署多台 EC2/容器实例要逐个同步证书容易遗漏私钥文件权限管理不当存在泄露风险。ACM 证书管理能力正是为了解决这些痛点每 24 小时自动刷新一次把证书、私钥、证书链分别写成 PEM 文件还能在文件更新后自动执行重载命令比如nginx -s reload实现证书续期零人工。核心机制一次刷新只需三步每一次证书刷新都遵循清晰的三步流水线实现在 certificate_task.rs导出调用 ACM APIExportCertificate获取证书、私钥和证书链acm_manager.rs落盘把内容安全写入目标 PEM 文件采用临时文件 原子重命名避免写一半损坏文件certificate_store.rs通知如果文件确实有变化执行你配置的refresh_command通知服务重载。刷新周期默认 24 小时并带5 分钟随机抖动避免整个集群在同一时刻同时去调用 AWS API。即使某次刷新失败也会保留原有的证书文件服务不会中断。快速开始最快 3 步完成证书自动导出第一步准备好两个必要权限在证书的 IAM 角色role_arn上确保具备sts:AssumeRole— 让 Provider 能切换角色acm:ExportCertificate— 允许导出证书和私钥。第二步编写 TOML 配置文件在[capabilities.acm]下为每张证书增加一个[[capabilities.acm.certificates]]条目字段定义见 types.rs[capabilities.acm] enabled true [[capabilities.acm.certificates]] certificate_arn arn:aws:acm:us-west-2:123456789012:certificate/abc12345-1234-1234-1234-123456789012 certificate_path /etc/ssl/certs/my-cert.pem private_key_path /etc/ssl/private/my-key.pem chain_path /etc/ssl/certs/my-chain.pem role_arn arn:aws:iam::123456789012:role/CertExportRole refresh_command /usr/sbin/nginx -s reload certificate_and_chain_permission { mode 0644 } key_permission { mode 0600 }参数解读配置项作用certificate_path/private_key_path证书与私钥 PEM 文件的绝对路径chain_path证书链路径不填则自动合并到证书文件fullchain 模式role_arn导出时切换的 IAM 角色支持跨账号refresh_command证书更新后执行的命令如重载 Nginxkey_permission私钥文件权限默认0600仅属主可读第三步启动 ACM Provider./aws-workload-credentials-provider acm start --config /path/to/config.toml也可以使用项目自带的 systemd 服务一键托管aws-workload-credentials-provider-acm.service开机自启、崩溃自动重启。一张证书一个任务故障隔离更安心调度器采用每张证书一个独立任务的模型scheduler.rs好处很明显证书 A 刷新失败不会影响证书 B各任务启动时带 5 秒随机延迟错峰调用 API任一任务都能独立监听取消信号优雅停机。安全细节私钥保护值得点赞 证书管理天然涉及敏感私钥项目在安全上做了不少功课私钥内存保护私钥使用Zeroizing包装日志中一律脱敏显示见 acm_manager.rs原子写入先写临时文件再重命名杜绝读到半个证书防符号链接攻击写入前会校验父目录不含符号链接抵御 TOCTOU 类攻击默认最小权限Linux 下私钥文件默认0600证书默认0644也可按需配置。常见问题速查Q1证书文件没变化时会重复执行重载命令吗不会。只有文件内容发生变化、或处于首次启动周期、或上次刷新失败时才会执行refresh_command避免无意义地重启服务。Q2多个账号的证书能一起管吗可以。每张证书独立配置role_arnProvider 会为每个角色预建独立的 ACM 客户端天然支持跨账号导出。Q3Windows 上能用吗支持。Windows 下通过scheduled-task:前缀触发预定计划任务并用trustee_type / trustee_name / rights配置文件 ACL参考 README 中的 Windows 配置示例。总结AWS Workload Credentials Provider 的 ACM 证书管理能力把导出证书 → 写入 PEM → 重载服务全流程自动化配合 24 小时刷新、抖动调度、原子写入和私钥保护是运维 EC2、容器、自建 HTTPS 服务时省心又安全的证书方案。想深入了解实现可以从 certificate_task.rs 和 certificate_store.rs 这两个核心文件读起。【免费下载链接】aws-workload-credentials-providerThe AWS Workload Credentials Provider (formerly the AWS Secrets Manager Agent) is a client-side solution that helps you standardize how you consume credentials from AWS services across your compute environments.项目地址: https://gitcode.com/gh_mirrors/aw/aws-workload-credentials-provider创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考