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

Buildroot问题:使用update-ca-certificates更新信任存储失败

解决Buildroot添加自定义CA证书到信任存储的问题

1. 确认启用ca-certificates包

Buildroot默认不自带update-ca-certificates工具,必须先启用对应的包:

  • 执行make menuconfig进入配置界面
  • 导航到 Target packages > Libraries > Crypto
  • 勾选ca-certificates选项,保存退出后重新执行make

2. 确保证书文件权限正确

将自定义CA证书放到rootfs_overlay/usr/local/share/ca-certificates/后,要保证文件权限为644(全局可读):

  • 本地修改证书权限:chmod 644 your-custom-ca.crt
  • 也可以在后续的post-build脚本中统一修复权限

3. 让Buildroot在构建时自动执行update-ca-certificates

Buildroot不会自动触发该命令,需要通过post-build脚本实现:

  1. 在Buildroot项目根目录创建scripts/post-build.sh脚本,内容如下:
    #!/bin/sh
    # 修复证书权限(确保工具能读取)
    chmod 644 ${TARGET_DIR}/usr/local/share/ca-certificates/*.crt
    # 生成信任链接到/etc/ssl/certs
    ${TARGET_DIR}/usr/sbin/update-ca-certificates --fresh
    
  2. 给脚本添加执行权限:chmod +x scripts/post-build.sh
  3. 回到Buildroot配置界面(make menuconfig),导航到 Build options > Post-build script
  4. 输入脚本路径(比如$(TOPDIR)/scripts/post-build.sh),保存退出

4. 验证扫描规则(可选)

如果上述步骤后仍未生效,检查/etc/ca-certificates.conf是否包含对/usr/local/share/ca-certificates的扫描规则:

  • 在rootfs_overlay/etc/下创建自定义的ca-certificates.conf,添加一行:
    /usr/local/share/ca-certificates/*.crt
    
  • 这样update-ca-certificates会明确扫描该目录下的证书文件

执行make clean && make重新构建镜像,此时自定义CA证书应该会以哈希命名的符号链接形式出现在/etc/ssl/certs/目录下。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 06:21:37