2010-12-09 60 views
3

我正在開發一個REST服務調用的Windows Phone 7應用程序。承載Web服務的第三方在當前環境中具有無效證書。當我點擊Firefox中的URL時,我收到有關該證書的警告,並詢問我是否想繼續。我還使用Poster FF擴展來測試呼叫。如果我第一次接受Firefox中的無效證書,它適用於海報。如果我不這樣做,那麼POSTER不會提出請求。使用不受信任的證書製作WP7 HttWebRequest POST?

在我的WP7仿真器中,我根本無法提出請求。我在EndGetResponse方法中獲得了一個404。我在Poster中提出了同樣的請求,所以我知道請求沒有任何問題。我已經成功地使用相同的代碼(不涉及任何證書)打另一個Web服務,所以我不認爲它是代碼。我唯一能想到的就是WP7不允許請求無效的證書。有沒有人有過這種情況的經驗?有沒有辦法解決它?

有沒有一種方法可以告訴我的應用程序接受所有通信,即使存在無效的證書?

回答

1

可悲的是沒有辦法在手機上做到這一點。通常,即在桌面上,這一簡單的代碼行將禁用證書檢查。

System.Net.ServicePointManager.ServerCertificateValidationCallback = (se, cert, chain, sslError) => { return true; }; 

如果您在手機上查看ServicePointManager,則不會掛接回調。這是一個巨大的痛苦。

您是否考慮寫信給服務負責人並詢問他們爲什麼會成爲糟糕的互聯網公民? (基本上,你在這裏看到的是網絡安全的行動,無論好壞)

正如馬特所說,你可能能夠在網絡服務器上編碼一個簡單的中繼。它不一定是一項特殊的服務,但也許只是一個網頁,可以爲你打電話並吐出RAW文本或XML。您的手機客戶端只需獲取該頁面並手動選擇響應。

那裏有一個願望有一個方法。

Luke

+0

提示:忘記他們說的話。不要讓這本教科書正確的方式阻止你將產品推向市場。 – 2010-12-09 22:22:17

0

我不知道在手機上安裝其他證書的方法。

在這種情況下,我會在您的應用和第三方網站之間創建代理服務,並讓您的應用調用該服務。如果您需要,您可以將代理放在有效的證書後面。

1

您需要在手機上安裝頒發方的根CA證書。

您可以將RootCA通過電子郵件發送給手機用戶。他們點擊附件,它會提示他們詢問他們是否要在手機上安裝證書。

一旦你完成了你的請求應該通過。

我不相信有一種方法可以在你的應用程序中編程執行此操作。

+1

應該使用哪種證書格式?我試過pem,crt和der沒有成功。 – 2012-05-02 10:34:01

相關問題