如何正确使用AWS CLI从S3导入证书至ACM?
AWS CLI ACM导入S3中证书的正确命令写法
问题原因
ACM的import-certificate命令不直接支持s3://路径作为--certificate、--certificate-chain、--private-key的参数值,它只识别本地文件路径(file:////fileb:///)或直接传入的证书内容。你之前用s3://报错就是这个原因。
解决方法
方法1:先下载到本地再导入(简单直观)
先把S3里的证书文件下载到本地临时目录,再用本地路径导入:
# 下载证书文件到本地/tmp目录 aws s3 cp s3://your-bucket-name/fullchain.pem /tmp/fullchain.pem aws s3 cp s3://your-bucket-name/cert.pem /tmp/cert.pem aws s3 cp s3://your-bucket-name/privkey.pem /tmp/privkey.pem # 导入到ACM aws acm import-certificate \ --certificate fileb:///tmp/cert.pem \ --certificate-chain fileb:///tmp/fullchain.pem \ --private-key fileb:///tmp/privkey.pem
方法2:直接读取S3内容导入(无需本地文件)
通过aws s3 cp s3://... -将S3文件内容输出到标准输出,再用命令替换直接传入ACM命令:
aws acm import-certificate \ --certificate "$(aws s3 cp s3://your-bucket-name/cert.pem -)" \ --certificate-chain "$(aws s3 cp s3://your-bucket-name/fullchain.pem -)" \ --private-key "$(aws s3 cp s3://your-bucket-name/privkey.pem -)"
注意事项
- 确保你的AWS CLI身份拥有S3桶的
s3:GetObject权限,以及ACM的acm:ImportCertificate权限 - 你的CLI版本(1.18.69)完全支持上述两种写法
- 如果证书内容包含特殊字符,务必用双引号
""包裹命令替换部分,避免解析错误
内容的提问来源于stack exchange,提问作者Tom Harrison
相关产品推荐
相关产品推荐

