Ubuntu EC2实例中Wazuh Docker部署证书生成失败求助
问题分析:Wazuh Docker证书生成失败(Cert tool does not exist in any bucket)
核心原因定位
这个错误本质是wazuh-certs-generator容器内部无法从Wazuh存储桶下载证书生成工具,问题根源集中在代理配置的传递环节:虽然你给Docker服务配置了代理,但容器运行时未正确继承代理环境变量,导致容器内的网络请求无法通过代理访问外部资源。
具体排查与解决方向
1. 验证Docker服务代理是否生效
先确认Docker服务的代理配置已正确加载:
systemctl daemon-reload systemctl restart docker # 检查容器是否能继承代理环境变量 docker run --rm alpine env | grep -i proxy
如果输出无HTTP_PROXY/HTTPS_PROXY,说明代理配置未生效,需检查/etc/systemd/system/docker.service.d/proxy.conf的格式,确保配置正确:
[Service] Environment="HTTP_PROXY=http://a:b@ip:port" Environment="HTTPS_PROXY=http://a:b@ip:port" Environment="NO_PROXY=localhost,127.0.0.1,::1"
注意HTTPS_PROXY的地址必须以http://开头,不要误写为https://。
2. 手动给容器注入代理环境变量
若Docker服务代理未自动传递到容器,可在运行generator容器时强制指定代理:
docker-compose -f generate-indexer-certs.yml run --rm -e HTTP_PROXY=http://a:b@ip:port -e HTTPS_PROXY=http://a:b@ip:port generator
3. 检查代理的连通性与权限
- 确认代理服务器允许当前EC2实例的IP访问,且用户名密码(
a:b)正确。 - 进入容器内测试代理连通性:
# 进入generator容器 docker run --rm -it wazuh/wazuh-certs-generator:0.0.1 sh # 配置代理并测试访问 export HTTP_PROXY=http://a:b@ip:port export HTTPS_PROXY=http://a:b@ip:port curl -v https://packages.wazuh.com
若curl失败,需排查代理服务器的访问规则或网络连通性。
4. 绕过下载:手动挂载证书工具
如果代理问题暂时无法解决,可手动下载证书工具并挂载到容器内使用:
- 宿主机下载工具:
wget https://packages.wazuh.com/utils/cert-tool/wazuh-cert-tool.sh chmod +x wazuh-cert-tool.sh
- 修改
generate-indexer-certs.yml,添加挂载卷:
services: generator: volumes: - ./wazuh-cert-tool.sh:/tmp/wazuh-cert-tool.sh
再运行docker-compose命令,容器将使用本地脚本生成证书。
内容的提问来源于stack exchange,提问作者MLD
相关产品推荐
相关产品推荐

