无法从我的Android模拟器访问HTTPS

时间:2017-05-11 13:08:35

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

我支持公司代理,访问互联网的所有内容都需要有关Proxy的特殊配置。我在CentOS 7上,使用CNTLMD处理代理隧道,使用React Native开发移动设备。我正在使用Android Studio提供的Android模拟器。

我首先注意到,当我尝试在浏览器中打开Goog​​le时,我的模拟器无法访问任何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并启动了没有参数的模拟器。没有用。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

我还没有使用过不是android avd或androidstudio的软件, 但它看起来像代理或CA证书问题。 由于差异似乎是由OS,我会首先猜测CA证书。

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

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

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

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

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

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

然后在应用程序中,将在模拟器中运行的代码 可以使用地址 10.0.2.2使用android子网路由表连接到dev。 OS localhost。

相关问题