从 Azure Key Vault 检索证书(JKS 或 PFX)

时间:2021-01-10 07:51:41

标签: java jwt

我想使用 Java 创建 jwt 令牌。如果我将证书 (JKS) 本地存储在我的机器中,我的代码就可以工作。但我想使用 Azure Key Vault 中的证书而不将其存储在本地。如何修改文件部分?如果是 PFX 而不是 JKS 呢?

 KeyStore keystore = KeyStore.getInstance("JKS");

              File keystoreFile = ResourceUtils.getFile("classpath:"+Keystore);
              keystore.load(new FileInputStream(keystoreFile), KeyPassword.toCharArray());
                      
              PrivateKey privateKey = (PrivateKey) keystore.getKey(KeyAlias, KeyPassword.toCharArray());

1 个答案:

答案 0 :(得分:0)

根据 KeyStore JavaDoc (https://docs.oracle.com/javase/7/docs/api/java/security/KeyStore.html#load(java.io.InputStream,%20char[])),您使用的方法签名是 KeyStore.load(InputStream, char[])。这意味着 InputStream 不必是 FileInputStream。从 Azure 下载您的密钥库字节,将它们包装到 ByteArrayInputStream 中并执行您需要执行的任何操作。

至于如何读取 pfx 密钥库,您应该能够通过像 KeyStore.getInstance("pkcs12", "SunJSSE") 一样启动密钥库然后像加载 JKS 密钥库一样加载它。