如何在Flutter安卓构建时禁用Java端SSL证书校验?
解决方案
你遇到的是Gradle构建阶段使用的JDK证书校验失败问题,可通过以下两种方案解决:
方案1:直接禁用Gradle构建阶段的SSL证书校验(操作最快,符合你的需求)
仅对当前Flutter项目生效
- 打开项目下的
android/gradle.properties文件 - 在文件末尾添加以下配置:
# 全局禁用JDK层面SSL证书校验 systemProp.javax.net.ssl.trustStore=NONE systemProp.jsse.enableHostnameVerification=false systemProp.sun.security.ssl.disable.system.trust.anchors=false
- 保存文件后重新执行
flutter run即可正常构建。
全局生效(对所有Gradle项目生效)
- 打开macOS用户目录下的
.gradle/gradle.properties文件(如果不存在就手动创建) - 加入上述相同的配置,保存即可。
方案2:修复证书导入逻辑(更安全,不会完全禁用校验)
你之前导入证书失败是两个原因导致的:
- 未正确配置
JAVA_HOME环境变量,导致系统找不到对应的JDK证书库路径 - 输入了自定义密码,JDK默认证书库
cacerts的固定密码为changeit,不需要自定义新密码
操作步骤:
- 先执行命令设置临时环境变量,指向Android Studio自带的JDK:
export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home"
- 重新执行证书导入命令,提示输入密码时输入
changeit即可:
keytool -importcert -file ~/Downloads/google.cer -alias google -keystore $JAVA_HOME/jre/lib/security/cacerts
注意:禁用SSL证书校验存在被中间人攻击的安全风险,确认忽略风险再使用方案1。
内容的提问来源于stack exchange,提问作者Peter Nielsen
相关产品推荐
相关产品推荐

