You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Ubuntu:Focal的Docker容器因ssl-cert-snakeoil.key遭Aqua Scanner告警如何加固?

解决Ubuntu Focal Docker镜像中ssl-cert-snakeoil.key安全问题及容器加固方案

1. 移除默认蛇油证书文件

Ubuntu默认安装的ssl-cert包会生成测试用的私钥文件,直接在Dockerfile中删除相关文件或卸载该包:

# 删除蛇油证书及私钥
RUN rm -f /etc/ssl/private/ssl-cert-snakeoil.key /etc/ssl/certs/ssl-cert-snakeoil.pem
# 可选:彻底卸载ssl-cert包(无需测试证书时执行)
RUN apt-get purge -y --auto-remove ssl-cert

2. 替换为生产级SSL证书

如果Apache需要启用SSL,挂载或复制合法的自定义证书到容器,确保权限安全:

# 复制自定义SSL证书(假设本地certs目录存放证书文件)
COPY ./certs/prod-domain.crt /etc/ssl/certs/
COPY ./certs/prod-domain.key /etc/ssl/private/
# 限制私钥权限,仅运行用户可读
RUN chmod 600 /etc/ssl/private/prod-domain.key && \
    chown www-data:www-data /etc/ssl/private/prod-domain.key

3. 运行用户与容器权限加固

已更换运行用户的基础上,进一步限制容器权限:

  • Dockerfile中明确指定非root运行用户:
USER www-data
  • 启动容器时移除不必要的Linux能力,仅保留必需权限:
docker run --cap-drop all --cap-add NET_BIND_SERVICE <your-image>

(NET_BIND_SERVICE是Apache绑定80/443端口必需的能力,其余能力均可移除)

4. 镜像层面额外加固措施

  • 清理APT缓存,减少镜像体积与潜在漏洞:
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
  • 固定软件版本,避免依赖最新版带来的兼容性或安全风险:
RUN apt-get update && apt-get install -y --no-install-recommends \
    apache2=2.4.41-4ubuntu3.14 \
    postgresql=12.17-0ubuntu0.20.04.1
  • 禁用Apache、PostgreSQL的不必要模块/服务,比如Apache的mod_autoindex,PostgreSQL的非必需扩展。

5. 修复验证

构建镜像后,通过Aqua Scanner重新扫描确认敏感文件已移除;也可手动检查容器内文件:

docker exec <container-id> ls -l /etc/ssl/private/

内容的提问来源于stack exchange,提问作者yollo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 15:00:46