如何从多个文件创建可用的证书存储



我们有一个从CA请求签名证书的过程,我们得到了3个文件:cert.cer、cert.key和cert.p12

我现在需要从这些文件构建一个有效/可用的证书存储。我有CA&我的服务器上本地的中间证书。所以我尝试使用keytool导入所有内容。但我最终得到了一个装满大约100个证书的商店,再加上我的服务器的证书。但当我尝试使用它们时,我会收到一个错误,即服务器证书无效,除非签名证书也在存储中。基本上没有链,即使我的服务器证书说它是由商店中的中间证书颁发的。我使用以下命令导入我的证书和ca信任。

keytool -v -importkeystore -srckeystore "cacerts.p12" -srcstorepass "$CA_PASS" -srcstoretype "pkcs12" -destkeystore "$KEYSTORE_NAME" -deststorepass "$STORE_PW" -deststoretype "jks";
keytool -importkeystore -v -srckeystore "$CERT_NAME.p12" -srcstorepass "$STORE_PW" -srcstoretype "pkcs12" -destkeystore "$KEYSTORE_NAME" -deststorepass "$STORE_PW" -deststoretype "jks";

我不确定我错过了哪一步。这是一台Ubuntu 20.04服务器。

如何创建可用的证书存储。。

Usable是这里的关键词-您想使用密钥库做什么?(通常为SSL、客户端身份验证或WS-Security(

得到一个错误,即服务器证书无效,除非签名证书也在存储中

有不同的文件用于不同的目的:

  • cert.cer-具有CA签名证书的公钥
  • cert.key-私钥
  • cert.p12-密钥库,可能包含私钥,可能包含公钥及其证书,通常包含两者(私钥、公钥、证书(。因此,更好地验证p12密钥库真正包含的内容

PKCS#12密钥库通常可以按原样使用,通常不需要导入到单独的JKS中。但是-取决于软件。

BTW-也许你可以得到一个密钥库浏览器,这是一个开源的gem软件,当你不了解细节或cli选项时,它会给你一个很好的概述。

基本上没有链,即使我的服务器证书说它是由商店中的中间证书颁发的

取决于使用情况,但最佳做法是在信任库中导入CA根证书或其中间证书。

要在密钥工具中导入CA回复,只需导入别名与其私钥相同的CA回复(颁发的证书(。我不确定您是否可以通过这种方式创建整个证书链,您可以查看上面提到的密钥库资源管理器来确定。

最新更新