讀取P12格式證書的密鑰


 

不想存儲p12證書內容,只想存儲證書密鑰,可通過以下2種方式實現

一、通過java讀取證書的密鑰出來:

 1 package com.zat.ucop.service.util;
 2 
 3 import org.apache.commons.codec.binary.Base64;
 4 
 5 import java.io.FileInputStream;
 6 import java.io.IOException;
 7 import java.security.*;
 8 import java.security.cert.Certificate;
 9 import java.security.cert.CertificateException;
10 import java.util.Enumeration;
11 
12 /**
13  * 讀取P12格式證書的密鑰.
14  *
15  * @author weixiong.cao
16  * @date 2019/4/3
17  */
18 public class ReadP12Demo {
19 
20     public static void main(String[] args) throws KeyStoreException, IOException, CertificateException, NoSuchAlgorithmException, UnrecoverableKeyException {
21         String keyStorePath = "E:/client_01.p12";
22         String password = "123456";
23 
24         // 實例化密鑰庫,默認JKS類型
25         KeyStore ks = KeyStore.getInstance("PKCS12");
26         // 獲得密鑰庫文件流
27         FileInputStream is = new FileInputStream(keyStorePath);
28         // 加載密鑰庫
29         ks.load(is, password.toCharArray());
30         // 關閉密鑰庫文件流
31         is.close();
32 
33         //私鑰
34         Enumeration aliases = ks.aliases();
35         String keyAlias = null;
36         if (aliases.hasMoreElements()){
37             keyAlias = (String)aliases.nextElement();
38             System.out.println("p12's alias----->"+keyAlias);
39         }
40         PrivateKey privateKey = (PrivateKey) ks.getKey(keyAlias, password.toCharArray());
41         String privateKeyStr = Base64.encodeBase64String(privateKey.getEncoded());
42         System.out.println("私鑰------------->" + privateKeyStr);
43 
44         //公鑰
45         Certificate certificate = ks.getCertificate(keyAlias);
46         String publicKeyStr = Base64.encodeBase64String(certificate.getPublicKey().getEncoded());
47         System.out.println("公鑰------------->"+publicKeyStr);
48     }
49 }

 

二、通過openssl命令讀取

進入linux控制臺,輸入以下命令

openssl pkcs12 -in ./client_01.p12 -nocerts -nodes -out ./priKey.prikey

會在指定目錄下生成1個priKey.prikey,我們在提取裏面的內容:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM