Java密钥库:缺少decryptionKey和signingKey别名

时间:2018-01-12 17:27:29

标签: java security ssl pfx pkcs#12

我需要帮助解决这个我不明白的例外情况...... 而且我甚至都没有在Google上找到任何关于此的内容。

* java.security.KeyStoreException]:[提供的密钥库配置不正确,必须包含' decryptionKey '别名和' signingKey '别名在com.entrust.toolkit.x509.jsse.d。& lt

这些别名是什么?你知道他们失踪的原因吗?

这是抛出异常的代码行

CLIENT_KEYSTORE_PATH = full path of the "client certificate" pfx file.
CLIENT_KEYSTORE_PASS = password of the pfx file

KeyStore cks = KeyStore.getInstance("PKCS12");
        cks.load(new FileInputStream(CLIENT_KEYSTORE_PATH), CLIENT_KEYSTORE_PASS.toCharArray());
        SSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(cks, CLIENT_KEYSTORE_PASS.toCharArray()).build();

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

使用Java二进制文件检查带有bundeld的keytool命令。

你可以在网上找到如何使用谷歌搜索。

不要错过指定PKCS12的密钥库类型选项

Here there is a link to one place for example.

答案 1 :(得分:0)

  

错误:"密钥库不包含与此别名关联的私钥"

<强>问题 将Sun Java或Symantec SSL证书的代码签名证书导入密钥库时,会收到以下错误:

错误:&#34;密钥库不包含与此别名关联的私钥&#34;

原因 如果满足下列条件之一,则会发生此错误:

  • 证书正在导入错误的密钥库。
  • 证书正在导入错误的别名。

解决方案:

要解决此问题:

  • 找到正确的密钥库。密钥库必须是同一个密钥库 用于最初生成证书签名请求的 (CSR)。如果生成了具有相同名称和别名的新密钥库, 哈希将是不同的。因此,证书仍然不会 匹配密钥库中的私钥。
  • 找到正确的别名。要验证别名,请运行以下命令 命令:

    keytool -list -v -keystore [keystore name]

正确的别名将指出Entry type:keyEntry

找到正确的密钥库和别名后,运行以下命令导入证书:

keytool -import -trustcacerts -keystore [keystore_filename] -alias [alias_name] -file [cert_file]

资源链接:

https://knowledge.symantec.com/support/code-signing-support/index?page=content&id=SO6863&pmv=print&actp=PRINT&viewlocale=en_US