java - 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
解决方案
问题在于 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”信任库创建成功。
推荐阅读
- amazon-web-services - 如何在服务器端过滤 appsync 查询?
- reactjs - 从道具创建组件时页面冻结
- python - 将嵌套字典展平为 Dataframe Python
- python - FPDF with python:一些日文字符显示为矩形
- sql-server - 无法从 .net 核心应用程序连接到 SQL Server
- android - 如何在 Unity 中抑制“Windows 不支持 Firebase iOS 构建”错误?
- python - 将图像添加到 plotly express 图形
- docker - docker-compose up 不适用于远程主机(但 docker 本身可以)
- character-encoding - 哪个编码将 'é' 替换为 '\351'?
- angular - 从角度模式插入后更新表数据