首页 > 解决方案 > KeyStoreException:此密钥库不支持探测,必须以指定类型加载

问题描述

尝试通过终端将 .crt 证书添加到现有密钥库时出现此错误。我正在使用带有 Java 11 的 Linux Ubuntu 18.04LTS

我试图运行这个命令:

$ keytool -import -alias ca -file my_certificate_file_name.crt -keystore my_truststore_file_name

并且还尝试在没有别名的情况下运行:

$ keytool -import -file my_certificate_file_name.crt -keystore my_truststore_file_name

标签: javalinuxcertificatekeytool

解决方案


问题在于 Android 使用了另一种名为“BKS”的信任库。有问题的命令与“JKS”类型的信任库有关。

$ keytool -importcert -v -trustcacerts -file "your_cert_file" -alias ca -keystore "your_truststore.bks" -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "path_to_bcprov-jdk16-145.jar" -storetype BKS -storepass your_password

此外,还需要下载“bcprov-jdk16-145.jar”文件。您可以从 maven repo 执行此操作:https ://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk16/1.46

在终端执行上述命令后,“BKS”信任库创建成功。


推荐阅读