2017-05-11 1 views
2

기업용 프록시를 사용하고 있으며 인터넷에 액세스하는 모든 것이 프록시와 관련된 특수 구성을 필요로합니다. 저는 CentOS 7에서 CNTLMD를 사용하여 프록시 터널링을 처리하고 React Native로 모바일 용으로 개발하고 있습니다. Android Studio에서 제공하는 Android Emulator를 사용하고 있습니다.Android 에뮬레이터에서 HTTPS에 액세스 할 수 없습니다.

브라우저에서 Google을 열려고 할 때 내 에뮬레이터가 HTTPS 프로토콜에 액세스 할 수 없다는 사실을 처음 알았습니다. 내부적으로 Google은 HTTPS로 리디렉션하고 항상 "연결 거부 됨"오류가 발생합니다. 나중에 (이번 주) Axios와 Fetch를 사용하여 HTTP/HTTPS 요청을 작성하려고 시도한 결과, 연결하려는 API가 HTTPS 프로토콜에 속하기 때문에 심각한 문제가되었습니다.

동일한 프로젝트에서 작업하지만 Mac을 사용하는 친구는 HTTPS에 아무런 문제가 없습니다.

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

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

그리고를 그리고 그들은 아무것도하지 : 나는 또한 다음 명령을 사용하여 에뮬레이터를 시작하는 데 노력했다.

Android Studio에서 HTTP 및 HTTPS 프록시 설정을 시도했지만이 방법이 효과적이지 않습니다.

@edit

나는 나의 호스트의 HTTP_PROXY을 설정하고 매개 변수없이 에뮬레이터를 시작했다. 잘 작동하지 않았다.

무엇이 누락 되었습니까?

답변

0

위의 소프트웨어는 android avd 또는 androidstudio가 아닌 인데 프록시 나 CA 인증서 문제처럼 보입니다. 차이점은 OS에 의한 것으로 보이므로 먼저 CA 인증서를 추측해야합니다.

이 안드로이드 페이지는 명령 행에서 openssl을 사용하여 에 접속하는 방법에 대해 조언하고 인증서 가져 오기를 고려합니다. 위의 지침은 새로운 기능이 업데이트되어, https://developer.android.com/studio/run/emulator-networking.html

참고 :

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

이 안드로이드 페이지는 프록시 구성에 대한 현재의 제안이있다. ,의 SSL 프록시를 들어

아파치 웹 서버를 사용하고, 사용하도록 구성 : 여기 당신의 문제는 약간 다르지만 비 SSL에서 appengine 개발 서버 에 대한 프록시를 필요로 과거 내가 사용하는거야 SSL 자체 서명 인증서를 설치 한 다음 httpd.conf에 ProxyPass 및 ProxyPassReverse 을 추가하고 httpd-ssl.conf에 ProxyPass를 추가합니다. 의 SSL 프록시 https://127.0.0.1:443에 연결을 받아 가 사용하는 주소 10.0.2.2를 사용할 수있는 에뮬레이터 에서 실행됩니다 응용 프로그램 코드에서 다음 http://127.0.0.1:8080

에 전달로 ProxyPass로/http://127.0.0.1:8080/

아파치 안드로이드 서브넷 라우팅 테이블은 dev에 연결합니다. OS 로컬 호스트.

관련 문제