[英]Invalid keystore format using java
我正在嘗試向我們的一位客戶發出發布請求,並將證書作為其安全性的一部分。
我嘗試在 postman 中對其進行測試,就像通常在 postman 設置上附加證書一樣,然后能夠向他們的 api 發出發布請求。
現在我的問題是當我在 java 內置的平台上執行請求時遇到此錯誤
java.base/sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:664) java.base/sun.security.util.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:222) java.base/java.security.KeyStore.加載(KeyStore.java:1479)
在測試環境中,他們不需要密碼,因此需要密碼 null。
try (InputStream inputStream = new ByteArrayInputStream(p12Cert))
{
KeyStore keyStore = KeyStore.getInstance("jks");
keyStore.load(inputStream, null);
我從 javakeystore 跟蹤了 engineLoad 方法。
private static final int MAGIC = 0xfeedfeed;
private static final int VERSION_1 = 0x01;
private static final int VERSION_2 = 0x02;
if (xMagic!=MAGIC ||
(xVersion!=VERSION_1 && xVersion!=VERSION_2)) {
throw new IOException("Invalid keystore format");
}
有人可以詳細說明上述內容嗎?
能夠解決上述問題,首先是我嘗試在 base64 中編碼的 p12 證書是 utf-8 編碼,這是錯誤的,應該從十六進制轉換為 Z95A1446A7120E4AF6C0C8878ABB78ABB。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.