当前位置: 首页 > 知识库问答 >
问题:

使用Java的Azure Key Vault证书管理

魏冷勋
2023-03-14

我的解决方案涉及使用Java在keyvault中创建证书。下面是我尝试过但没有成功的方法。

  1. DefaultAzureCredentialBuilder:创建证书的最基本形式,其中我必须在环境变量中导出clientId、clientSecret和tenantId,并创建证书客户端,如下所示:
  CertificateClient certificateClient = new CertificateClientBuilder()
                                   .vaultUrl("https://valueUrl.vault.azure.net")
                                  .credential(new DefaultAzureCredentialBuilder().build()).buildClient();
     ClientCertificateCredential certCreds = new ClientCertificateCredentialBuilder()
                        .clientId("clientId")
                        .pfxCertificate("C:\\MyCerft.pfx", "123")
                        .tenantId("tenantId").build();
     CertificateClient certificateClient1 = new CertificateClientBuilder()
                        .vaultUrl("https://vaultUrl.vault.azure.net/")
                        .credential(certCreds).buildClient();

样品来源如下:

  • https://github.com/Azure/azure-sdk-for-java/tree/master/sdk/keyvault/azure-security-keyvault-certificates
  • https://github.com/Azure/azure-sdk-for-java/tree/master/sdk/identity/azure-identity

但上述两种方法都抛出了credentialBuilder类中签名不匹配的错误

com.azure.security.keyvault.certificates.CertificateClientBuilder"'s signer information does not match
signer information of other classes in the same package

以下是我的pom文件中的依赖项:

<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-security-keyvault-certificates</artifactId>
  <version>4.0.0</version>
</dependency>    `

<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-identity</artifactId>
  <version>1.0.4</version> <!-- {x-version-update;com.azure:azure-identity;dependency} -->
</dependency>

我真的很想用第二种方式,因为那更安全,让我做一些我必须在第一种情况下设置的配置设置。但是,在这一点上,我甚至会选择第一种,以防有结果。

另外,我不明白为什么第二种方式,microsoft没有将客户机密码作为参数,而是希望为解决方案提供一个证书(pfx/pem)来进行身份验证。我认为sdk应该允许接受两种访问方式。

任何关于我在这里可能缺少什么的建议都会有很大的帮助,因为这是我从微软官方留档中直接挑选的东西。

干杯干杯

共有1个答案

谭煜
2023-03-14

可能是BUG。我使用以下版本的SDK解决了它:

<!-- https://mvnrepository.com/artifact/com.azure/azure-identity -->
<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>1.1.0-beta.2</version>
    <scope>test</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/com.azure/azure-security-keyvault-certificates -->
<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-security-keyvault-certificates</artifactId>
    <version>4.1.0-beta.1</version>
</dependency>
 类似资料:
  • 是的,弹性豆茎应用程序是负载平衡的,并且确实有一个与之相关联的ELB。 我知道我可以直接应用于ELB我自己。但是我想通过弹性豆茎来应用它,这样env配置就保存到云形成模板上了。

  • 在尝试使用AzureKeyVault保护密钥时,我遇到以下错误: 00:01:41错误]读取钥匙圈时出错。微软蔚蓝色的钥匙库。模型。KeyVaultErrorException:操作在Microsoft返回了无效的状态代码“禁止”。蔚蓝色的钥匙库。KeyVault客户端。WrapkeyWithTtpMessageAsync(String Vault BaseUrl、String keyName、S

  • <?php $http = HttpRequest::newSession(); $response = $http->sslCert('证书路径', 'pem') // 支持PEM、DER和ENG证书 ->get('https://www.baidu.com/'); $content = $response->body(); // 网页源码

  • AMSSL证书管理 使用DNS接口验证失败了 使用文件验证失败,使用DNS验证也是失败,奇怪了. 请老师给分析一下. [amssl-3.8 admin] [OK] amssl-3.8 is already installed. configure arguments: --prefix=/usr/local/nginx-1.24 --user=www --group=www --with-http

  • 我在AWS OpsWorks上部署了一个Rails应用程序。我最近关联了一个购买AWS SES的域,并在该域的AWS证书管理器中获得了一个证书。 根据文件,所支持的服务是: null 例如。有一种方法可以从ACM获得SSL证书和SSL证书密钥,以便将其添加到OpsWorks中的应用程序设置中?

  • 苹果证书申请 教程: http://doc.wex5.com/ios-certificate-request/ 苹果证书的区别 苹果证书从价格来说,分为 $99 和 $299 两种。其中 $99 分为 个人证书和公司证书,两者无本质区别,仅代表是个人还是公司。$299的是企业证书,用于企业分发。下面介绍一下两种的区别。 $99 可以用于开发,但需要在生成证书的时候,把iPhone/iPad的设备I