繁体   English   中英

如何使用Java从系统读取p12文件?

[英]How to read p12 file from system in Java?

在我的应用程序中,当与我使用的API通讯时,我利用p12证书文件来加密流量。

对于我的生产环境,我需要从系统而不是从应用程序读取这些文件。

在Linux上,如何像从应用程序的资源目录中一样将这些文件从系统中读取到应用程序中并输入InputStream中?

我正在使用Java。

我建立了一个快速而肮脏的小类,以展示我用keytools创建的相对.pfx(P12)的keytools 自然,如果有几个可能的存放位置,您还可以在不同的潜在目录中查找该文件。

文件结构如下所示:

./bin
./bin/Test.java
./bin/Test.class
./conf
./conf/myFile.pfx

这是测试代码:

import java.io.*;
import java.security.*;

class Test {
  public static void main(String[] args) {
    String pass = "password";
    try {
      File file = new File("../conf/myFile.pfx");
      InputStream stream = new FileInputStream(file);
      KeyStore store = KeyStore.getInstance("PKCS12");
      store.load(stream, pass.toCharArray());
      PrivateKey key = (PrivateKey)store.getKey("example", pass.toCharArray());
      System.out.println("Success");
    } catch (KeyStoreException kse) {
      System.err.println("Error getting the key");
    } catch (Exception e) {
      System.err.println("Error opening the key file");
      e.printStackTrace();
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM