2013-06-04 25 views
2

不要驚訝,但我的問題並不在於某些工作不工作:爲什麼.Net WebClient能夠使用HTTPS out-of-沒有任何配置的盒子?爲什麼.Net WebClient能夠在沒有任何配置的情況下使用HTTPS,而Java HttpClient不能使用

我不會問我是否有一些嚴重的理由認爲它不應該如此:實際上我已經使用Apache HttpClient執行完全相同的操作,通過HTTPS發佈POST,但它有抱怨。

什麼困擾HttpClient是事實服務器TLS證書不知道。 這是一個合理的投訴,所以我已經將證書添加到我正在使用的JRE證書存儲中,之後所有工作都按預期工作。

首先你可以刪除一個可怕的疑問:WebClient是正確使用HTTPS,如果我嘗試連接到「https://downloadspywaresandmalwares.com」它應該拒絕我像「你瘋了嗎?這不是一個值得信賴的位置!」?

所以我想這與.NET和Java的分歧安全策略有關:也許Java捆綁了自己的一套證書和權限,而.Net與操作系統更加集成,可能有更大的一套可信證書。

那麼我怎麼能檢查所有這些假設?

如果它可以有任何的重要性:我已經使用了Chrome的網站,但從來沒有從IE瀏覽器,所以WebClient沒有使用IE配置。

感謝您的任何意見。 :)

回答

1

好吧,我想我終於明白了:

  • 我懷疑.NET不擁有自己的證書存儲區,而是使用OS店
  • 我設法找到並刪除證書,但這並不容易,因爲Windows正在努力維護一些證書在其商店
  • 一旦刪除,如預期的那樣,WebClient被破壞並抱怨,因爲它「無法建立信任關係f或SSL/TLS安全通道
  • 所以是的Web客戶端使用正確的SSL,那我就放心了:)

希望這些信息對別人有用......

相關問題