如何将公钥从受信任的根 CA 导入 PKCS12 密钥库?
这是可能的,还是我对这整个事情的理解是错误的?
PKCS#12 文件可以包含各种对象,但通常它包含证书和私钥。证书是公钥和其他东西(包括签名)的容器。
根 CA 通常表示为证书(具有虚拟签名,传统上是自签名)。使此类证书成为“根 CA”的原因是一种编程属性,应用程序或操作系统在其中声明:“我信任此证书”。
可以将根 CA 证书存储在 PKCS#12 文件中。不能做的是将其存储为“根”:证书放在文件中,而不是声明证书从无到有受信任的属性。更详细地说,PKCS#12 是一种开放格式,但如果您想在 PKCS#12 文件中存储某些内容并使其在另一端正确读取,则必须存在某种关于对象位的约定解释。对于 PKCS#12 文件和信任设置,这样的约定(尚)不存在。
您没有说明您使用的是哪种语言;我假设Java。在 Java 中,有一个KeyStore
类,通过给定的“类型”获得,其中一个是“pkcs12”。然后,您可能会在 JCA 文档(在“密钥管理”中)中找到以下内容:
从 JDK 6 开始,在“pkcs12”中存储可信证书的标准尚未建立,因此“jks”或“jceks”应该用于可信证书。
这说明了一切。