如何在 Debian 气隙主机上添加本地 CA 机构

如何在 Debian 气隙主机上添加本地 CA 机构

给定:一个绝对隔离的 LAN,具有许多使用本地 CA 服务器的 Web 服务。

所有用户主机都安装了 ca 证书,并且 .crt 文件由update-ca-certificates.类似浏览器的软件,例如 Chrome 等,无需报告即可运行。

但是每个命令行实用程序(例如curl、git、wget 等)都会遇到错误,因为它们无法验证本地发行者。

来自卷曲的消息:

curl: (60) SSL 证书问题:无法获取本地颁发者证书。

大多数方法只涉及安装互联网范围内的证书包。一些人提到使用 /etc/pki/whitelist 路径和update-ca-trust脚本,但系统或存储库中都缺少这两者。

主机操作系统:Debian 11

答案1

使用您选择的名称在下面创建一个目录/usr/local/share/ca-certificates,并将 CA 服务器的公共 CA 证书以 PEM 格式作为文件放入其中*.crt。然后跑update-ca-certificates

它将以多种格式在系统范围内添加您的本地 CA 证书/etc/ssl/certs

  • 作为 PEM 格式证书的 OpenSSL 样式目录,其符号链接带有证书哈希值,位于/etc/ssl/certs
  • 作为 PEM 格式的所有可信 CA 证书的单个文件,位于/etc/ssl/certs/ca-certificates.crt
  • 以及可以由放置在 中的任何脚本创建的任何其他形式/etc/ca-certificates/update.d,例如:
    • 如果已安装 Java 包,将会有一个/etc/ca-certificates/update.d/jks-keystore脚本生成 CA 证书的 JKS 密钥库,如/etc/ssl/certs/java/cacerts.

有一个手册页man update-ca-certificates和更多文档/usr/share/doc/ca-certificates。但是,除非您彻底阅读所有文档,否则您可能会错过这样一个事实:你需要在下面创建一个目录/usr/local/share/ca-certificates并将您的 CA 证书放入其中;顶层的任何证书文件/usr/local/share/ca-certificates都将被忽略。

update-ca-certificates命令用于Debian及相关发行版;您update-ca-trust发现提到的源自 Fedora,并且似乎也用于 Arch(也许还有相关发行版?)。

这两个命令基本上执行相同的工作,尽管它们之间的确切路径名有所不同,因为每个发行版系列都维护了系统范围 CA 证书的稍微不同的目录层次结构。

相关内容