2014-05-19 104 views
4

我使用Charles代理(在OS X 10.9.3,Mavericks下)來修改Origin標頭,以便我連接的API(開發中)接受來自開發環境的傳入請求。Charles Proxy SSL證書未被瀏覽器接受

我設法使這個工作與一個簡單的重寫規則和一切工作,直到今天。

目前的問題是瀏覽器沒有連接到代理(由Charles設置)。請求中的「失敗」字段顯示:「未提出請求,可能是SSL證書被拒絕」,在下面的註釋字段中:「您可能需要將瀏覽器配置爲信任Charles CA SSL證書。」 。

我已經完成了它,它的工作完美。自從那時起,我沒有改變Charles的配置。我試圖讓它工作的東西:

  1. 卸載並重新安裝the Charles certificate
  2. 請嘗試以下瀏覽器中的相同操作:Chrome Canary,Chrome stable,Safari和Firefox
  3. 使用HTTP代理而不是-more advanced-SOCKS代理。

我還相信,查爾斯證書是永遠值得信賴,無論默認設置:

keychain access http://f.cl.ly/items/2G1n1q212U1J0a022R1i/Screen%20Shot%202014-05-19%20at%2017.26.57.png

不知道這是一個線索的解決方案,但是當我直接導航到API與查爾斯打開,我看到: warning

該API確實託管在Windows Azure平臺上,但我不明白爲什麼查爾斯證書(因爲查爾斯的行爲作爲一箇中間人,顯示其cer證書到瀏覽器)是* .azurewebsites.com,而不是實際的主機。

需要注意的是,實際的主機(比如說api.example.com)爲* .example.com提供了一個有效的,購買的通配符證書。

如果任何人有一個如何解決這個問題或者究竟發生了什麼暗示,我會非常感謝她的建議。

謝謝。

ps。如果我調整的直接請求有一個適當的Origin標頭(經修正的敏感信息/清零):

GET/XXX HTTP/1.1
主持人:api.example.com
連接:保持活躍
緩存-Control:max-age = 0
Accept:text/html,application/xhtml + xml,application/xml; q = 0.9,image/webp,/; q = 0.8
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3)AppleWebKit/537.36(KHTML,如Gecko)Chrome/35.0.1916.114 Safari/537.36
接受編碼:gzip,deflate,sdch
Accept-Language:en-US,en; q = 0.8,hu; q = 0.6
Cookie:...
產地:https://acceptable.host.com

我得到以下回響應:

HTTP/1.1 400錯誤的請求
的Content-Length 46
內容類型的應用/ JSON;字符集= UTF-8
服務器Microsoft-IIS/8.0
X供電,通過ASP.NET
的Set-Cookie ARRAffinity =祕密令牌;路徑= /;域= api.example.com
日期星期三, 21 May 2014 07:58:02 GMT

+0

你是什麼意思'當我直接導航到api查爾斯打開'?與第一個案子有什麼不同,因爲在這兩個案件中查爾斯都在? – dirkgroten

+0

對不起,我不清楚。在第一種情況下,我導航到http:// localhost:8000並從那裏向API(https://api.example.com)發出XHR請求。在第二種情況下,我直接導航到API服務器的根目錄https://api.example.com。 –

+0

因此,在第二種情況下,如果您「繼續進行」,您在查爾斯看到了什麼?如果Charles確實代理了請求,那麼您至少應該看到服務器返回的內容,這些內容的標題可以讓您知道爲什麼會看到* .azurewebsites.net而不是您自己的域。 – dirkgroten

回答

相關問題