簡體   English   中英

從字符串私鑰創建 x509 證書

[英]Create x509 Certificate from String private key

我有如下字符串格式的私鑰

MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKPOLV6ZLKtPVkgu9sAaD7DiA7I+
V3nmABhVZtOLo/HyqC/Fi2JWQahFJiWVowwhNPZwEw8vUSmFbBN6EUNzElCO202F32qFIr/P2BVS
qZlp4zziCrZgHeB+ZXaRceb0FV5RNI03slaiAUYQTKjbUzegP5j4+6hnv9Hc+xze1vNNAgMBAAEC
gYBmV4C9I9JmzdDIlJ8R8rZu+yb4DD83J95TVbhC33H0znkKL9AgBmhLK7jjrpQKFg0zE161FAkP
eg7GNHPowlJkA5fswWY0UefJOcQytJIm6WFBl78pq5sMGT9fjTSbJur4JSlfvY0G3RpxNN+a9eAr
6zBXDXbP7ufoaU9bug80OQJBAO6wyggPmDnRRAZYt3jl4oSMRGFH5pKQl+diYi/sa3NMOlT+g0H9
6r5CnUoRo4MS9oAUebSi9W8j41Z9I8ZZfdcCQQCvrytXLhr+TcZz8mcpWU5pvxZ0+iv6ybGMhjT5
2PVvaqBqFtKVx5m0WGwiBPQUXudWIqFWcOYNh53XFWSvost7AkEAmd3fLtkWsVbEOi8gfs/6eKWP
QwK9kQei1KboUqpeDeI6zCWRaY4Mr/9zM5cxR8KGosQQPLC79Jw25b8fu7Je2wJARqAawj9MprLJ
ds8Z3auDNEuXUYtIptbyQ1WoclBfylyJBF0MZx4IklGBluN6472LLjtZtJBKS2Ibd92nzluZhQJB
AJoysIMfMWAUBji4D77n7yMdodq0L3j1b8zZdeFEu3d7/TK/h47b75F8mdr+C+7IN/9jrUbTBKNx
0cSFX0uOcao=

現在我想將它轉換成 x509 證書,我正在使用下面的代碼。

localByteArrayInputStream = new ByteArrayInputStream(
                paramString.getBytes());
        CertificateFactory localCertificateFactory = CertificateFactory
                .getInstance("X.509");
        X509Certificate localX509Certificate = (X509Certificate) localCertificateFactory
                .generateCertificate(localByteArrayInputStream);
        localByteArrayInputStream.close();
localByteArrayInputStream = new ByteArrayInputStream(
                paramString.getBytes());
        CertificateFactory localCertificateFactory = CertificateFactory
                .getInstance("X.509");
        X509Certificate localX509Certificate = (X509Certificate) localCertificateFactory
                .generateCertificate(localByteArrayInputStream);
        localByteArrayInputStream.close();

 (X509Certificate)localCertificateFactory.generateCertificate(localByteArrayInputStream);
      localByteArrayInputStream.close();

我嘗試了很多方法,但無法理解如何去做。 在這種情況下,我遇到了以下錯誤。

java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: Empty input
    at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:104)
    at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339)

我得到了同樣的錯誤。 根據 generateCertificate “對於 X.509 證書的證書工廠,inStream 中提供的證書必須是 DER 編碼的,並且可以二進制或可打印 (Base64) 編碼提供。如果證書以 Base64 編碼提供,則必須是開頭以-----BEGIN CERTIFICATE-----為界,結尾必須以-----END CERTIFICATE-----為界。”

我添加了-----BEGIN CERTIFICATE----------END CERTIFICATE----- ,然后修復了異常

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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