java - 创建 keystore 时出错 => 线程 "main"java.io.DataInputStream.readInt 处的 java.io.EOFException 异常(未知来源)

标签 java security keystore jks

我用来创建 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/

相关文章:

java - 通过小程序访问 LDAP

android - 丢失了我的 keystore ,其中只有 SHA1

android - 为什么不推荐使用 androidx.security.crypto.MasterKeys?

java - spring mvc mongodb 中请求的资源()不可用

Java正则表达式: finding match errors

java - Java有析构函数吗?

Java 多 keystore 检查顺序

java - 在操作栏上叠加图像

javascript - 检测当前的 Internet Explorer 安全区域

security - 为什么在数据库已经受到威胁的情况下对密码进行哈希处理?