gpt4 book ai didi

java - 如何使用 Java 获取存储在 Azure KeyVault 中的证书

转载 作者:行者123 更新时间:2023-11-30 12:05:14 24 4
gpt4 key购买 nike

我已将 .pfx 文件存储在 Azure Keyvault 中。我有“证书标识符”、“ key 标识符”、“ secret 标识符”的值。我想在 java 程序中使用 .pfx 文件。如何从 Keyvault 获取文件?

我在网上搜索了一下,发现我们可以使用Keyvault获取证书

KeyVaultClient keyVaultClient = new KeyVaultClient(credentials);
keyVaultClient.getCertificate(this.keyVaultUri, certificateName, '');

1) 如何将凭据传递给 KeyVaultClient?

2) 我是否必须在 KeyVaultClient 中使用 Azure 登录凭据?

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

//I have to get this .pfx file from Azure Keyvault

keyStore.load(new FileInputStream(".pfx file"),
keyPassphrase.toCharArray());

SSLContext sslContext = SSLContexts.custom()
.loadKeyMaterial(keyStore, keyPassphrase.toCharArray())
.build();

HttpClient httpClient =
HttpClients.custom().setSSLContext(sslContext).build();

最佳答案

供将来引用,如果您的 Java 应用程序在应用服务或具有 Managed Identity 的任何其他 Azure 资源中运行, ,有一个更简单的方法可以做到这一点:

首先启用指定资源的系统分配的托管标识或用户分配的托管标识。使用启用托管标识时获得的对象 ID,在 key 保管库的访问策略中指定它并为其分配必要的权限。在这种情况下,您将为托管身份分配证书的访问策略“get”。配置完所有这些后,您需要在 application.properties 中指定 keyvault url。

azure.keyvault.uri= # keyvault 的 url

然后在要获取证书的 Java 类中执行以下操作:

  1. 导入以下软件包:
     import com.microsoft.azure.AzureEnvironment;
import com.microsoft.azure.credentials.AppServiceMSICredentials;
import com.microsoft.azure.credentials.AzureTokenCredentials;
import com.microsoft.azure.keyvault.models.CertificateBundle;
  • 要传递凭据,您需要添加以下行:

  • AzureTokenCredentials credentials = new AppServiceMSICredentials(AzureEnvironment.AZURE);
    KeyVaultClient keyVaultClient = new KeyVaultClient(credentials);
    CertificateBundle certificateBundle = KeyVaultClient.getCertificate(certificateIdentifier);

    如果您按照前面的步骤操作,此处的第一行将自动允许应用服务使用 Azure Keyvault 进行身份验证。

    使用它,当您调用KeyVaultClient.getCertificate时,它将返回一个CertificateBundle,您可以在其中找到证书内容。

    通过这种方法,您不必在任何地方指定凭据。

    关于java - 如何使用 Java 获取存储在 Azure KeyVault 中的证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56460906/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com