PKIX路径构建失败 - 无法找到请求目标的有效认证路径(在具有身份验证的公司代理后面)

3
我正在尝试使用flutter和react-native进行开发(我是一名初学者),我需要为我的公司构建一个小型原型,但由于证书错误(如下所述),我无法通过“运行我的第一个应用程序”步骤。
我在公司SSL代理后面需要身份验证,并且我们还有一个内部证书链。现在,我对证书完全没有经验,请注意如何解决这个问题。
我在网上搜寻了解决方案,但有些我不确定:
1. 有些人推荐使用InstallCert Java应用程序,但由于代理原因,我无法使用,并且找不到让我设置代理用户名和密码的版本。
2. 使用keytool将证书存储到java cacerts文件中,但我不知道应该安装哪个证书:存储库的(dl.google.com?)还是我的公司的证书。
3. 是否可能下载那个.pom文件并将其存储在某个地方,以便运行时无需访问互联网?我可以正常访问dl.google.com域并下载它。
下面是我的build.gradle文件和精确错误。
buildscript {
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Gradle运行错误: ProcessException:进程“C:\ src \ teste1 \ android \ gradlew.bat”异常退出: 失败:构建出现异常。 出了什么问题: 配置根项目“android”时出现问题。 无法解决配置“:classpath”中的所有工件。 无法解决com.android.tools.build:gradle:3.2.1。 所需的: 项目: 无法解决com.android.tools.build:gradle:3.2.1。 无法获取资源' https: //dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom '。 无法获取' https: //dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom '。 sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到所请求目标的有效认证路径 无法解决com.android.tools.build:gradle:3.2.1。 无法获取资源' https: //jcenter.bintray.com/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom '。 无法获取' https: //jcenter.bintray.com/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom '。 sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到所请求目标的有效认证路径

在您的cacerts中存储公司证书和Jfrog证书不应该有任何问题。我几年前也遇到过类似的情况,我相信公司的证书是一个根证书,可以处理所有事情。因此,我建议使用keytool导入两个证书,杀死任何现有的Gradle守护进程,然后再次尝试构建。 - bdetweiler
1个回答

0

我在 Windows 10 上使用公司网络代理运行 flutter run 时遇到了同样的问题,但这种情况下没有进行身份验证。

失败:构建过程中出现异常。
出现了什么问题: 无法解析':app:_internal_aapt2_binary'配置的所有文件。 无法解析com.android.tools.build:aapt2:3.2.1-4818971。 由以下内容所需: 项目 :app 无法解析com.android.tools.build:aapt2:3.2.1-4818971。 无法获取资源'https://dl.google.com/dl/android/maven2/com/andro 无法获取'https://dl.google.com/dl/android/maven2/com/android/too。 sun.security.validator.ValidatorException:PKIX路径构建失败 无法找到请求目标的有效认证路径 无法解析com.android.tools.build:aapt2:3.2.1-4818971。 无法获取资源'https://jcenter.bintray.com/com/android/tools/bui 无法获取'https://jcenter.bintray.com/com/android/tools/build/aap sun.security.validator.ValidatorException:PKIX路径构建失败 无法找到请求目标的有效认证路径。

以下解决方法适用于我,希望能对某些人有所帮助!

  1. 打开您喜欢的互联网浏览器。
  2. 导航到 https://dl.google.com (注:它将重定向到 https://www.google.com/chrome/)。
  3. 手动下载并存储证书到开发框。
  4. 通过您的互联网浏览器导航到该URL。 点击浏览器地址栏中的锁定图标。 单击已打开上下文菜单中的“证书”菜单项。 切换选项卡以获取详细信息。 单击“复制到文件…” CTA。 使用导出向导导出证书。

  5. 在开发框上运行 certlm.msc
  6. 导入先前下载的 .cer 文件。
  7. 重新运行 flutter run

1
你是什么意思说“3. 手动下载并存储证书到开发机器上。” 你打算如何做呢? - ilovejavaAJ
@ilovejavaAJ请查看回答中新添加的如何执行此操作的指令。 - Eugene Komisarenko
我在导入 .cer 文件时遇到了错误。它显示“在打开企业信任存储时发生错误”,我不知道我是否正确地进行了导入。 - ilovejavaAJ
@ilovejavaAJ,这可能是由于您的权限问题,也可以尝试使用此链接https://serverfault.com/a/604544/446091,因为它涉及“本地计算机”文件夹。 - Eugene Komisarenko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接