簡體   English   中英

使用 java 的密鑰庫格式無效

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM