安装 ca-certificates-(mono/java) 会对证书存储产生什么影响?

安装 ca-certificates-(mono/java) 会对证书存储产生什么影响?

我安装了该mono-complete软件包并惊讶地在安装日志中看到这几行:

Processing triggers for ca-certificates (20190110ubuntu1.1) ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...

以及以下几行:

127 new root certificates were added to your trust store.

看来这是由安装引起的ca-certificates-mono。Anapt-cache search ca-certificate还指出 Java 有一个类似的包(ca-certificates-java)。

这会影响系统受信任的根证书存储吗?如果没有,我希望 Mono 和 Java 使用它们自己的内部证书存储。那么它为什么会调用/etc/ca-certificates/update.d

答案1

我不是完全地熟悉 ca 证书或您所陈述的软件包的行为,但我确实对这些软件包进行了一些深入研究。

ca-certificates-{mono|java}安装不同的 ca 证书更新挂钩。 /etc/ca-certificates/update.d/jks-keystore适用于 Java 和/etc/ca-certificates/update.d/mono-keystoreMono。

Java 包将所有受信任的现有 CA 证书ca-certificates(包括添加的、手动安装的受信任证书等)重新打包为 JKS(Java KeyStore)格式,供 Java 应用程序使用。它没有添加任何可生成新证书的配置或文件,但“更新”将是捆绑为 JKS 格式的证书。

Mono 包实际上调用了 Mono 的程序certsync.exe

exec /usr/bin/mono $MONO_OPTIONS /usr/lib/mono/4.5/cert-sync.exe "$@"

这似乎是 Mono 将系统ca-certificates存储与 Mono 的密钥库同步的机制,我认为这与系统ca-certificates存储是分开处理的,因为它具有.exe格式和 Windows 兼容性 - 它可能被重新捆绑到 Mono 程序的 Windows 兼容证书存储中。

无论如何,在剖析了更新脚本和这些包似乎安装的文件之后,这两个包都不会改变系统上实际的证书 - 但是,如果这些密钥库尚未更新,则在应用新的更新挂钩时,所有证书都会被更新并添加到证书存储中。

相关内容