首页 文章

java.lang.RuntimeException:javax.net.ssl.SSLHandshakeException

提问于
浏览
0

Azure java SDK 给出 - > java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

ApplicationTokenCredentials credentials = new ApplicationTokenCredentials(options.getClientId(), options.getTenantId(),   options.getClientSecret(), AzureEnvironment.AZURE);

    subscriptionIds.forEach((subscriptionId)->{
        Azure azure = Azure.authenticate(credentials).withSubscription(subscriptionId);
        ResourceGroups resourceGroups = azure.resourceGroups();
        for(ResourceGroup resourceGroup : resourceGroups.list()){
            for(VirtualMachine virtualMachine : azure.virtualMachines().listByGroup(resourceGroup.name())){
                logger.info(virtualMachine.name());
            }
        }
    });

执行 for(ResourceGroup resourceGroup : resourceGroups.list()) 时出现此错误 . 在网上看,我在密钥库中添加了management.azure.com的证书,但这也没有为什么ResourceGroups不为空 . 但不知道为什么它会在以后发出错误 .

1 回答

  • 0

    根据我的经验,请确保为该特定版本的Java添加了Unlimited Cryptography的Java安全策略文件 . 如果没有,请按照以下步骤安装Java Cryptography Extension(JCE)Unlimited Strength Jurisdiction Policy Files,这些文件是使用PGP加密所必需的,某些连接器可能需要这些文件 .

    • 下载Java 7Java 8的文件和说明 .

    • 找到Atom正在使用的Java实例的 <JAVA_HOME>\jre\lib\security 目录 . 例如,此位置可能是: C:\Program Files\Java\jre8\lib\security .

    • 从此目录中删除以下.jar文件:local_policy.jar和US_export_policy.jar .

    • 将这两个文件替换为JCE Unlimited Strength Jurisdiction Policy Files下载中包含的.jar文件 .

    • 尝试再次运行代码以检查问题是否仍然存在 .

相关问题