java.io.IOException: toDerInputStream 拒绝标签类型 77
Posted
技术标签:
【中文标题】java.io.IOException: toDerInputStream 拒绝标签类型 77【英文标题】:java.io.IOException: toDerInputStream rejects tag type 77 【发布时间】:2021-04-17 15:53:55 【问题描述】:我正在尝试使用 Java 从 weblogic 服务器读取 pfx 证书,但我收到 java.io.IOException: toDerInputStream rejects tag type 77
【问题讨论】:
我们需要查看minimal reproducible example,包括您的文本代码以及错误消息的完整堆栈跟踪。 【参考方案1】:这是给我的。 当我以字符串形式下载为 base64 时。 我的代码需要它在 byte[], 我的代码告诉我“java.io.IOException:toDerInputStream 拒绝标签类型 77”。 然后我在powershell中执行此操作,它可以工作。
$fileContentBytes = get-content "the file you read from web"
$a= [System.Convert]::FromBase64String($fileContentBytes)
[IO.File]::WriteAllBytes(‘xxx.pfx’, $a)
【讨论】:
【参考方案2】:看起来您可能正在尝试使用 .cer 证书,但它应该是 .pfx 或其他不同于 .cer 的格式。 检查您正在使用的 KeyStore 或您的证书格式。
String strFile = "certificate.cer"; // << ((( should be .pfx )))
File file = new File(strFile);
byte[] certificateBytes = FileUtils.readFileToByteArray(file);
String password = "MyPassword123";
KeyStore keyStore = KeyStore.getInstance("PKCS12"); // << KeyStore used for .pfx
try (ByteArrayInputStream bs = new ByteArrayInputStream(certificateBytes))
keyStore.load(bs, password.toCharArray());
catch (NoSuchAlgorithmException | CertificateException e)
e.printStackTrace();
【讨论】:
以上是关于java.io.IOException: toDerInputStream 拒绝标签类型 77的主要内容,如果未能解决你的问题,请参考以下文章
java.io.IOException: toDerInputStream 拒绝标签类型 77
java.io.IOException:系统找不到指定的路径
java.io.IOException: Connection reset by peer和java.io.IOException: Connection timed out。Socket
android java.io.IOException:传输端点未连接