【问题标题】:Can't access HTTPS from my Android Emulator无法从我的 Android 模拟器访问 HTTPS
【发布时间】:2017-10-10 12:22:04
【问题描述】:

我使用公司代理,所有访问互联网的东西都需要关于代理的特殊配置。我在 CentOS 7 上,使用 CNTLMD 处理代理隧道,使用 React Native 为移动设备开发。而且我使用的是Android Studio提供的Android Emulator。

当我尝试在浏览器中打开 Google 时,我首先注意到我的模拟器无法访问任何 HTTPS 协议。谷歌内部重定向到 HTTPS,我总是收到“连接被拒绝”错误。后来(本周),尝试使用 Axios 和 Fetch 发出 HTTP/HTTPS 请求,这已成为一个严重的问题,因为我尝试连接的 API 是在 HTTPS 协议下的。

我的一个朋友在同一个项目中工作,但使用 Mac 没有 HTTPS 问题。我还尝试使用以下命令启动模拟器:

emulator -avd myemulator -http-proxy http://127.0.0.1:3128

还有

emulator -avd Marshmallow86 -http-proxy http://<network username>:<network password>@<ip>:<port>

他们什么都不做。

我尝试在 Android Studio 上设置 HTTP 和 HTTPS 代理,但这似乎不是正确的方法(也没有奏效)。

@edit

我在我的主机上设置了 http_proxy 并在没有参数的情况下启动了模拟器。效果也不好。

我错过了什么?

【问题讨论】:

    标签: android https react-native proxy android-emulator


    【解决方案1】:

    上面那个不是android avd或者androidstudio的软件我没用过, 但它看起来像代理或 CA 证书问题。 由于差异似乎是由操作系统决定的,我会先猜测 CA 证书。

    这个 android 页面有关于从命令行使用 openssl 的建议 探索并考虑导入证书。

    https://developer.android.com/training/articles/security-config.html

    这个 android 页面有代理配置的当前建议: https://developer.android.com/studio/run/emulator-networking.html

    请注意,上述说明已针对新功能进行了更新。 过去我需要一个非 SSL 应用引擎开发服务器的代理 这与您的问题略有不同,但这是我使用的:

    对于 SSL 代理,使用 apache Web 服务器,并将其配置为使用 SSL 通过安装自签名证书,然后添加 ProxyPass 和 ProxyPassReverse 在 httpd.conf 和 httpd-ssl.conf 中的 ProxyPass。 代理通行证/http://127.0.0.1:8080/

    Apache 作为 SSL 代理接收到 https://127.0.0.1:443 的连接,并且 将它们传递给http://127.0.0.1:8080

    然后在应用程序中,将在模拟器中运行的代码 可以使用地址 10.0.2.2 使用android子网路由表连接到dev。操作系统本地主机。

    【讨论】:

      猜你喜欢
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      相关资源
      最近更新 更多