如何在Android Studio中允许防火墙生成的SSL证书



我们的新防火墙提供了透明的代理,该代理发布了安全(HTTPS)连接的自签名SSL证书。

Android Studio要求我接受两个证书,我确认了。

现有项目构建正常。仅当我在build.gradle文件中更改或添加依赖项时,出现此错误消息:

Gradle 'MyApp' project refresh failed
Error:Cause: unable to find valid certification path to requested target

有没有办法告诉Gradle插件来信任防火墙生成的SSL证书?

应始终避免降级安全性;)

根据喷气脑发布的解决方案:

eh,这是一个喷气脑/想法问题。尽管能够选择Gradle包装纸的Java安装,但IDE当前正在使用的JRE仍在完成包装纸的抓取……防止包装器甚至启动。它应该提示像IDE中的其他任何地方一样信任证书,但事实并非如此。在此期间,我发布了说明,以解决需要它的人。(此问题在2017.2.1持续存在)

根据对那篇文章的评论,我写了此bash脚本:

#!/bin/bash
set -eu
CA_PEM_FILE="${1?Missing path to certificate file}"
ANDROID_STUDIO_PATH="${2:-/opt/android-studio/jre/jre/lib/security}"
if [ -f "${CA_PEM_FILE}" ]
    then
        printf "n>>> ADDING A CERTIFICATE TO ANDROID STUDIO <<<n"
        # https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000094584-IDEA-Ultimate-2016-3-4-throwing-unable-to-find-valid-certification-path-to-requested-target-when-trying-to-refresh-gradle
        cd "${ANDROID_STUDIO_PATH}" && 
        printf "changeitnyesn" | keytool -keystore cacerts -importcert -alias ProxyCertificate -file "${CA_PEM_FILE}" && 
        printf "n >>> CERTICATE ADDED SUCCESEFULY<<<n"
    else
        printf "n >>> FATAL ERROR: Certificate not found in path ${CA_PEM_FILE} <<<n"
fi

调用:

sudo ./add-certificate-to-android-studio.sh /etc/ssl/certs/ProxyCA.pem

如果您已将Android Studio安装在不同于/opt/android-studio的位置,则必须像以下位置调用:

sudo ./add-certificate-to-android-studio.sh /etc/ssl/certs/ProxyCA.pem /android/path

我在此答案中找到了一个有效的解决方案/解决方案:

强制使用http而不是https

我用maven {url" http://jcenter.bintray.com"替换了jcenter()。

此解决方法要求Jcenter可以通过HTTP访问,而HTTP将来可能会出于安全原因而被禁用。

最新更新