2015-09-02 38 views
11

Potrzebuję uzyskać dostęp do mojego lokalnego środowiska dev (MAMP Pro) na urządzeniu. Mam to działa dobrze dla mojej witryny non-SSL, ale nie mogę sprawić, żeby działała na mojej stronie, która wymaga SSL.Dostęp do lokalnego środowiska dev na urządzeniu i Charles Proxy i SSL?

Zarówno moja lokalna maszyna dev, jak i moje urządzenie znajdują się w tej samej sieci Wi-Fi. W ustawieniach Wi-Fi na urządzeniu ustawiłem proxy HTTP na ręczne, serwer jest moim IP środowiska deweloperskiego, a port jest domyślnym 8888 (chociaż nadal działa, jeśli zmienię to na 8080).

Mam już skonfigurowany wpis hosta wirtualnego dla local.site1.com w MAMP Pro. Ten adres URL działa teraz zarówno w moim lokalnym środowisku deweloperskim, jak i w urządzeniu.

Gdy próbuję przejść do witryny SSL w https://local.site2.com to działa na środowisko dev ale urządzenie daje komunikat:

Safari cannot open the page. 

Wystąpił błąd: "There was a problem communicating with the secure web proxy server (HTTPS).".

Charles Proxy wydaje się być standardem sposób uzyskania dostępu do lokalnego środowiska programistycznego na urządzeniu przy użyciu nazwy domeny określonej w pliku hosts, jednak z przyjemnością skorzystam z dowolnego działającego rozwiązania.

Odpowiedz

1

Z pewnością system OSX/iOS nie lubi certyfikatu, który wstrzykujesz, ponieważ nie pochodzi od "zaufanego" źródła i po prostu zabija połączenie.

Możesz zdefiniować swój certyfikat jako pochodzący z zaufanego źródła z Apple Configurator.

source

edit

  1. Otwórz aplikacja firmy Apple Configurator i utworzyć nowy plik konfiguracyjny (przygotowanie).
  2. Na karcie instalacji wyłącz opcję "Aktualizuj iOS", ponieważ nie chcemy tego robić. Chcemy tylko wstrzyknąć cert.
  3. Następnie przejdziesz do zakładki "Instalacja" i pod "Ustawienia" wybierasz certyfikat. (Ponieważ nie możemy zawrzeć pliku .pem w tym mobileconf, musimy przekonwertować nasz certyfikat główny na plik .cert, a ponieważ jest już w aplikacji z pękiem kluczy, wystarczy go wyeksportować jako plik .cert gdzieś, gdzie możesz łatwo znajdź go:
  4. W aplikacji Apple Configurator wybierz właśnie wyeksportowany certyfikat główny .cert i wciśnij mobileconfig na telefon/urządzenie za pomocą kabla USB. (Zostaniesz poproszony o zaakceptowanie, że jest instalowany, ponieważ jest to "niezaufany" certyfikat główny, a następnie przechodzisz przez kroki opisane przez twórcę here w celu zainstalowania certyfikatu PEM na urządzeniu
  5. Po skonfigurowaniu serwera proxy tak, jak zrobiłbyś to dla serwera proxy http w ustawienia sieciowe i zobacz wszystkie zaszyfrowane ruchy TLS w systemie iOS 8
+0

To nie działa, ale nie jestem pewien, czy zrobiłem coś złego. Dzięki Apple Configurator Ive utworzył nową nazwę w ustawieniach, Aktualizacja iOS jest ustawiona na Nigdy nie aktualizuj urządzenia. Pod Setup ive dodano certyfikat, którego mój localhost używa. Powrót w Ustawienia Zainstalowałem profil na moim urządzeniu (podłączonym przez USB). Nie widzę żadnej różnicy na moim urządzeniu, a strona wciąż nie jest ładowana. – Evans

+0

zobacz edycję, podając szczegóły poszczególnych kroków. – Pat

4

przypadku korzystania Charles, będzie trzeba także zainstalować swój certyfikat:

iOS 4 i później Na urządzeniu ustawić proxy HTTP do korzystania Charles, a następnie przejdź do http://www.charlesproxy.com/getssl zainstalować certyfikat.

+0

Zainstalowałem certyfikat, ale Safari nadal nie może otworzyć strony. – Evans

7

Czy próbowałeś odświeżyć lub uruchomić ponownie?Możesz ponownie sprawdzić ustawienie proxy HTTP na ręczne i ponownie sprawdzić, czy lokalny komputer deweloperski i twoje urządzenie są w tej samej sieci Wi-Fi. Upewnij się również, czy adres IP jest poprawny, a serwer proxy działa.


Zauważ, że jeśli używać SSL dla danych żąda:

-go Proxy -> Ustawienia proxy -> SSL -> Zaznacz „Włącz SSL” i dodać hosta i port dla Twojego zwraca

-Ty może również chcesz wyłączyć stacjonarne i serwery proxy internetowych z rozwijanego menu Proxy, dzięki czemu można lepiej izolować ruch aplikacja


Możesz chcieć wyłączyć dane komórkowe, aby zapewnić cały ruch jest prowadzony za pośrednictwem Wi-Fi/Charles Proxy


Następnie uruchom Karola i przejść do zakładki „sekwencji” w górnym oknie, aby zobaczyć każde wezwanie i status ponieważ są wykonywane w czasie rzeczywistym, w tym rozmiar odpowiedzi i czas trwania. Kliknij żądanie, aby wyświetlić szczegóły w dolnym okienku, w tym: Przegląd, Żądanie, Odpowiedź & Podsumowanie.

Należy zapoznać się z opcjami dla różnych typów danych. Na przykład, jeśli Twoja odpowiedź jest obrazem, możesz zobaczyć rzeczywisty obraz i wymiary. Jeśli twoja aplikacja zużywa JSON, masz wybór JSON Tree Navigator lub możesz "skopiować odpowiedź" klikając prawym przyciskiem myszy żądanie w górnej zakładce "Sekwencja". Wklej wyniki w coś w rodzaju http://www.uize.com/examples/json-prettifier.html, aby uzyskać łatwe do odczytania wyniki.


podczas startu, sprawdzić te:

1.Czy aplikacja czyniąc odpowiednią ilość wniosków o dane, aby zrównoważyć czas uruchamiania i pre-sprowadzanie, aby przyspieszyć „następne strony”?

2. Czy jest jakieś żądanie pobrania większej ilości danych niż to konieczne?

3.Są czasy reakcji wysokie ze względu na konfigurację serwera lub słabo wykonującego backend


sprawdzić te PODCZAS UŻYTKOWANIA APP:

1.Czy istnieje wspólną ścieżkę nawigacji, który jest powolny i może skorzystać z pre-fetching na premierze?

2.Czy dane rzeczywiście pochodzą z pamięci podręcznej, zamiast inicjować nowe żądanie danych?

3. Czy są przesyłane jakiekolwiek dane śledzenia (np. Omniture, Google Analytics lub inne usługi stron trzecich), a jeśli tak, to czy są one prawidłowo wysyłane? Czy żądania są wprowadzane błędnie lub wielokrotnie z powodu błędu kodowania?

4. Jeśli wyświetlasz wideo, czy wybrano odpowiednie kodowanie/format? (Charles może przyspieszyć przepustowość, aby naśladować połączenia z telefonem bezprzewodowym.) Czy obrazy są odpowiednio dobrane do urządzenia?

2

Charles Proxy

Aby korzystać Charles Proxy SSL trzeba zainstalować Charles Proxy Korzeń CA. Dzieje się tak dlatego, że Charles Proxy faktycznie działa jako MITM, dzięki czemu można rzeczywiście spojrzeć na ruch generowany przez SSL między Twoją aplikacją a serwerem (co może być przydatne podczas śledzenia problemów lub gdy chcesz dokładnie wiedzieć, ile ruchu jest generowane).

Patrz: http://www.charlesproxy.com/documentation/proxying/ssl-proxying/

i

http://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

Gdy urząd certyfikacji jest zainstalowany swoją aplikację i wbudowanego w przeglądarkę Safari powinien być w stanie uzyskać dostęp do witryny.

Inną alternatywą

Inny sposób, że robiłem to w przeszłości jest faktycznie użyć dnsmasq, który jest dość lekki serwer DNS, który odczyta plik lokalny Twojego systemu/etc/hosts i przesyła również do serwera nazw w pliku resolv.conf, gdy nie ma go w pliku hosts.

Możesz zainstalować program dnsmasq za pośrednictwem Macports na swoim MacBooku/laptopie (cygwin w systemie Windows) lub zazwyczaj jest to dość standardowy pakiet dystrybucyjny, na którym działa * nix.

Po uruchomieniu programu dnsmasq można po prostu ustawić urządzenie za pomocą Ustawień/Wi-Fi, aby wskazywać na serwer dnsmasq do rozpoznawania nazw. Dopóki twoja strona znajduje się w twoim/etc/hosts i nie masz swojego hosta blokującego port 53 (DNS), powinieneś być dobry.

Używam dnsmasq przez większość czasu, ale Charles Proxy przydał się, gdy próbowałem NAPRAWDĘ wyśledzić, ile danych było używanych z mojej aplikacji (szczególne wymaganie dla mnie było to, że aplikacja, która była rodzajem kiosku, który musiał pozostać poniżej 3 MB dziennie, więc nie otrzymaliśmy ogromnych rachunków komórkowych).