Java 调用 Azure HTTPS API 证书问题

Java 访问 Azure HTTPS的API时,会经常报:PKIX:unable to find valid certification path to requested target 这样的错误,这是因为Java有自己的KeyStore,并不会使用系统的证书, Java在自己的KeyStore中找不到对应的信任证书,就会报出此错误。所以如果需要使用Java访问Azure的HTTPS的API,就需要将Azure 网站的证书添加到JDK的KeyStore中。

以下是手动导入的方式:

  1. Azure 使用Wosign的证书, 从http://www.wosign.com/Root/index.htm# 站点下载WoSign 根证书(Certification Authority of WoSign),将.crt 文件后缀改为 .cer

  2. 执行以下命令导入

    keytool -keystore "C:\Program Files\Java\jdk1.8.0_71\jre\lib\security\cacerts" -importcert -alias WoSign -file WS_CA1_NEW.cer

    接下来 会提示输入密码,默认密码为 changeit,输入之后,选择‘是’将其安装到JDK 可信证书库中。

  3. 如果看到以下结果,则导入成功。
    Image.png

也可以借助以下代码,将证书自动带入JDK的KeyStore,请参开此文档:http://arui.me/index.php/archives/69/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
哦,我理解错了你的问题Azure Active Directory是微软提供的一种身份验证和授权服务,可以用于管理组织内的用户和应用程序。如果你想在Java应用程序中使用Azure AD进行身份验证,你可以使用Azure AD提供的Java SDK来完成。具体来说,你需要完成以下步骤: 1. 在Azure门户中创建一个Azure AD应用程序,并记录下应用程序的客户端ID和客户端机密。 2. 在Java应用程序中添加Azure AD Java SDK的依赖项,并使用客户端ID和客户端机密来初始化一个身份验证对象。 3. 使用身份验证对象来获取访问令牌,并将令牌用于调用Azure AD保护的API。 下面是一个使用Azure AD Java SDK进行身份验证的示例代码: ``` import com.microsoft.aad.msal4j.*; public class AzureADAuthExample { public static void main(String[] args) throws Exception { String clientId = "<your-client-id>"; String clientSecret = "<your-client-secret>"; String authority = "https://login.microsoftonline.com/<your-tenant-id>/"; IConfidentialClientApplication app = ConfidentialClientApplication.builder(clientId, ClientCredentialFactory.createFromSecret(clientSecret)) .authority(authority) .build(); ClientCredentialParameters parameters = ClientCredentialParameters.builder(Collections.singleton("<your-scope>")).build(); IAuthenticationResult result = app.acquireToken(parameters).get(); // Use the access token to call Azure AD protected API // ... } } ``` 在这个示例中,你需要将`<your-client-id>`、`<your-client-secret>`、`<your-tenant-id>`和`<your-scope>`替换为你自己的值。`<your-scope>`表示你要访问的API的范围。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值