2012-12-04 29 views
4

我的配置調用其餘的是這樣的:如何使用SSL從ExtJS的

  • REST服務器:WCF-REST託管在一個窗口服務。
  • Web服務器:用於託管我的html + js文件的IIS(Sencha ExtJS)。
  • 客戶端:客戶端使用煎茶ExtJS的

所寫的,我有REST服務器上的兩個認證/安全配置: 1. HTTP沒有認證可言。 2. https(ssl)帶有基本認證。

客戶端在無認證/無ssl選項上效果很好。 但是,我無法使用https /身份驗證使其工作。

如果我試圖使用瀏覽器訪問https網址,我收到一條消息,指出服務器證書無效。我可以忽略它,並出現用戶/密碼彈出窗口。輸入用戶/密碼後,我得到REST響應。

我錯過了什麼使它使用javascript?

回答

0

我假設您的開發服務器正在使用自簽名證書;如果是這樣的話,你就要求一個不受信任的事務在未經用戶同意的情況下繼續進行,並且我非常肯定在Javascript中沒有辦法做到這一點。

HTTPS事務需要建立信任以保證您的數據安全。通常這是通過與第三方共享並經過第三方驗證的證書來實現的,但作爲開發人員,我們通常在開發和測試期間使用自簽名證書,因爲它們快速,簡單且免費。那些自簽名證書需要在交易的每一端都知道,以取代通過第三方證書建立的信任。

如果您的瀏覽器沒有安裝您的自簽名證書的副本,您將看到典型的「哦,不,你是訪問最危險的網站」的消息,你提到。瀏覽器爲用戶提供一個用戶界面來臨時接受該證書(建立所需的信任),允許交易繼續。 Ajax交易沒有那麼奢侈 - 瀏覽器只是讓交易死掉,因爲沒有用戶界面。我想我們都應該感謝一下,在Javascript中沒有辦法打敗它。

你的選擇是:

  1. 暫時接受一個標籤或窗口交易可能建立信任在其他選項卡交易/在某些瀏覽器(我用Chrome的這種做法)窗口。
  2. 將證書安裝到您的瀏覽器中(「如何」取決於您所選擇的瀏覽器)
  3. 獲得該證書的簽名比計劃的時間早一點 - 無論如何您都需要它,因爲您正在下一個Facebook,對吧? :-)