我用来创建 keystore 的源代码,
import java.io.File;
import java.io.FileInputStream;
import java.security.KeyStore;
import java.security.cert.Certificate;
public class MainClass {
public static void main(String args[]) throws Exception {
String pass = "wshr.ut";
String alias = "mytest";
String name = "mykeystore";
FileInputStream in = new FileInputStream(name);
KeyStore ks = KeyStore.getInstance("JKS");
ks.load(in, pass.toCharArray());
Certificate c = ks.getCertificate(alias);
in.close();
System.out.println(c);
}
}
运行时出错:
Exception in thread "main" java.io.EOFException
at java.io.DataInputStream.readInt(Unknown Source)
at sun.security.provider.JavaKeyStore.engineLoad(Unknown Source)
at sun.security.provider.JavaKeyStore$JKS.engineLoad(Unknown Source)
at java.security.KeyStore.load(Unknown Source)
at MainClass.main(MainClass.java:17)
你能给我任何想法或解决方案来解决这个问题吗?
最佳答案
我只想发布我对 future 的回答, 我遇到了同样的问题并找到了解决方案, 你为 fileInputStream 传递的路径必须是 keyStore inside java 的路径在我的情况下我在 ubuntu 20.04 和 java 11 路径如下:“/usr/lib/jvm/java-11-openjdk-amd64/lib/安全/证书” 如果您在 Windows 上,路径将是:“C:/Program Files/Java/jre1.8.0_101/lib/security/cacerts”
还要确保密码通常是默认密码,类似于以下单词:“changeit”
关于java - 创建 keystore 时出错 => 线程 "main"java.io.DataInputStream.readInt 处的 java.io.EOFException 异常(未知来源),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17216477/
相关文章:
database - 是否有任何工具可以从数据库模式的 json 表示自动生成 ERD 图?
nginx - 如何替换 HTTP 请求 URI 中的特殊字符?
linux - 为什么我得到数据大小大于 mss 的数据包?
macos - 运行 make 时如何修复 ranlib/libtool 错误
c++-cli - 导出 C++/CLI native 类 (C4679)
android-layout - 在滑动选项卡中水平滚动 : android
python - 在 python 解释器和脚本文件中运行时的不同结果