Windows下使用AWS CLI出现SSL验证失败如何导入证书完成配置?
解决Windows下AWS CLI SSL证书校验失败问题
核心原因
你的网络链路中存在SSL解密拦截(常见于企业内网代理、防火墙设备),AWS CLI默认不信任拦截设备的自签CA证书,导致请求被拦截返回错误。添加--no-verify-ssl参数跳过证书校验后请求可正常发送,即可确认是证书信任问题。
操作步骤
步骤1:导出需要信任的根证书
- 用Chrome/Edge浏览器打开任意AWS公有服务地址,例如
https://s3.amazonaws.com - 点击地址栏左侧的锁形图标 → 「连接安全」→ 「查看证书」
- 切换到「证书路径」标签页,选中最顶层的根证书条目 → 点击「查看证书」
- 切换到新弹窗的「详细信息」标签页 → 点击「复制到文件」
- 导出格式选择「Base64编码的X.509(.CER)」,保存到本地路径,例如
C:\certs\company-root.cer
步骤2:配置AWS CLI信任自定义证书
方式1:全局永久生效(推荐)
打开PowerShell执行以下命令,写入AWS CLI全局配置:
aws configure set ca_bundle C:\certs\company-root.cer
验证配置是否生效:
aws s3 ls s3://MyBucketName
无需添加--no-verify-ssl即可正常返回结果,说明配置生效。
方式2:临时生效(仅当前终端会话有效)
仅需临时测试时,可在当前PowerShell会话配置环境变量:
$env:AWS_CA_BUNDLE = "C:\certs\company-root.cer"
关闭终端后配置自动失效。
步骤3:同步配置到Terraform
Terraform的AWS provider默认会读取AWS CLI的CA证书配置,如果仍然报错,可以在Terraform代码的AWS provider块中显式指定证书路径:
provider "aws" { region = "你的AWS可用区域,例如ap-southeast-1" ca_bundle = "C:/certs/company-root.cer" }
重新执行terraform plan/terraform apply即可正常运行。
注意事项
- 不要长期使用
--no-verify-ssl参数,会跳过SSL校验,存在数据传输被窃听、篡改的风险 - 如果根证书更新,只需替换本地保存的证书文件即可,无需修改AWS CLI配置
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

