2015-09-02 24 views
11

我需要在設備上訪問我的本地開發環境(MAMP Pro)。我已經爲我的非SSL網站正常工作,但我不能爲需要SSL的我的網站工作。訪問設備上的本地開發環境以及Charles Proxy和SSL?

我的本地開發機器和我的設備都在同一個wifi網絡上。在設備的wifi設置中,我已經將HTTP代理設置爲手動,服務器是我的開發環境IP,端口是默認的8888(儘管如果我將其更改爲8080,它仍然有效)。

我已經在MAMP Pro中爲local.site1.com設置了虛擬主機條目。該網址現在適用於我的本地開發環境和設備。

如果我嘗試去我的SSL站點https://local.site2.com這個工程對開發環境,但設備給出了這樣的消息:

Safari cannot open the page. 

錯誤是:"There was a problem communicating with the secure web proxy server (HTTPS).".

查爾斯代理似乎是標準使用hosts文件中指定的域名訪問設備上的本地開發環境的方式,但是我很高興使用任何可用的解決方案。

回答

1

當然OSX/iOS不喜歡你注入的證書,因爲它不是來自「可信」的來源,而是直接殺死連接。

您可以使用Apple Configurator來定義來自信任來源的證書。

source

編輯

  1. 打開蘋果的應用程序配置,並創建一個新的配置文件(準備)。
  2. 在安裝選項卡上禁用「更新iOS」,因爲我們不想去那麼做。我們只是想注入證書。
  3. 然後進入「安裝」選項卡,在「設置」下選擇證書。 (因爲我們不能在這個mobileconf中包含一個.pem文件,所以我們必須將我們的根證書轉換爲.cert文件,並且因爲它已經存在於鑰匙串應用程序中,只需將它導出爲一個.cert文件,找到它
  4. 回到Apple Configurator應用程序中,您選擇剛導出的.cert根證書,並通過USB電纜將mobileconfig推送到您的手機/設備上(系統會提示您接受由於它已安裝「不可信」的根證書,然後按照創建者here解釋的步驟將.pem證書安裝到設備上。
  5. 一旦您可以設置代理服務器,就像您爲http代理服務器設置代理服務器一樣。聯網設置並查看iOS 8上的所有TLS加密流量流量
+0

這不是工作,但我不知道如果我做錯了什麼。使用Apple Configurator Ive在設置下創建了一個新名稱,Update iOS設置爲從不更新設備。在Setup ive下添加了我的本地主機正在使用的證書。返回設置我已將配置文件安裝到我的設備(通過USB連接)。我無法看到我的設備上有任何不同,頁面仍然沒有加載。 – Evans

+0

請參閱編輯所涉及步驟的詳細信息。 – Pat

4

如果使用查爾斯,你還需要安裝其證書:

的iOS 4和更高 在設備上,設置您的HTTP代理使用查爾斯,然後瀏覽到http://www.charlesproxy.com/getssl安裝證書。

+0

我安裝了證書,但Safari仍然無法打開頁面。 – Evans

7

您是否嘗試刷新或重新啓動?您可能需要重新檢查將HTTP代理設置爲手動並重新檢查您的本地開發機器和您的設備是否位於同一個WiFi網絡上。另外,請確保您的IP是正確的,並且代理正在運行。


請注意,如果您使用SSL爲您的數據請求

依序前往代理 - >代理服務器設置 - > SSL - >選中「啓用SSL」並添加主機和端口爲您請求

- 您可能還需要從代理下拉禁用桌面和Web代理,因此您可以更好地隔離您應用的流量


您可能要關閉蜂窩數據,以確保所有流量通過Wi-Fi /運行查爾斯代理


然後啓動查爾斯和切換到「序列」選項卡在頂部窗口中看到每個呼叫和狀態因爲它們是實時製作的,包括響應大小和持續時間。點擊請求查看底部窗格中的詳細信息,包括:概述,請求,響應&摘要。

請確保您瞭解不同數據類型的選項。例如,如果您的回覆是圖片,則可以看到實際圖片和尺寸。如果您的應用程序使用JSON,則可以選擇JSON樹導航器,或者通過右鍵單擊頂部「序列」選項卡中的請求來「複製響應」。將結果粘貼到諸如http://www.uize.com/examples/json-prettifier.html之類的內容中,以便於閱讀輸出。


發射時,檢查這些

1.Is您的應用程序進行數據請求的合理量,以平衡的啓動時間和預取,加快「下一個頁面」?

2.是否有任何請求獲取超過必要數據的請求?

沒事兒響應時間高,由於服務器配置或表現不佳的後端


檢查這些過程中應用使用

1.Is那裏緩慢一般的導航路徑並且可以從發佈時的預取獲益?

2.數據實際來自緩存而不是發起新的數據請求嗎?

3.是否有任何正在發送的跟蹤數據(例如Omniture,Google Analytics或其他第三方服務),如果是,是否正確發送? 由於編碼錯誤,是否有任何錯誤或重複的請求?

4.如果您提供視頻,是否選擇了正確的編碼/格式? (查爾斯可以通過調節速度來模仿無線電話連接。) 圖像是否適合設備大小?

2

Charles代理

要使用Charles Proxy for SSL,您需要安裝Charles Proxy Root CA.這是因爲Charles Proxy實際上充當了MITM,因此您可以真正查看應用程序與服務器之間生成的SSL流量(在追蹤問題時或在您想要知道具體生成多少流量時這會很有用)。

請參見: http://www.charlesproxy.com/documentation/proxying/ssl-proxying/

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

一旦根CA安裝在您的應用程序,內置的Safari瀏覽器應該能夠訪問該網站。

另一種選擇

,我已經在過去這樣做的另一個方法是實際使用的dnsmasq這是將讀取你的系統的本地/ etc/hosts文件,並轉發給域名服務器相當輕巧的DNS服務器在resolv.conf中,當它不在你的hosts文件中。

你可以在你的Macbook /筆記本上安裝dnsmasq,(cygwin在windows上),或者它通常是一個非常標準的發佈包,你正在運行* nix。

一旦你運行了dnsmasq,你就可以簡單地通過Settings/Wifi設置你的設備來指向你的dnsmasq服務器進行名稱解析。只要您的站點位於/ etc/hosts中,並且您沒有基於主機的防火牆阻止端口53(DNS),那麼您應該很好。

我發現自己大部分時間都在使用dnsmasq,但是當我嘗試真正追蹤從我的應用程序中使用了多少數據時,Charles Proxy非常有用(對我來說,具體要求是該應用程序是一種的亭子需要保持在每天3MB以下的使用量,所以我們沒有收到巨大的手機賬單)。