2012-03-16 73 views
4

我在這是一個新手,所以請耐心等待。我有一個使用WCF開發的Web服務,它將被非.NET客戶端使用。目前我正在尋求保護它。我已經得出結論,最好的選擇是使用WsHttpBinding和一個X509證書。但是,在獲得證書方面,我有點失落。 X509是否與SSL證書相同?什麼是最好的證書,我應該尋找這樣的場景?使用X.509證書保護Web服務。哪個最好?

+0

是的,[X.509](http://en.wikipedia.org/wiki/X.509)指定了一些對於PKI很重要的事物的格式。你的安全要求是什麼?這是公共互聯網上的網絡服務嗎?如果是這樣,您應該使用由受信任的[CA](http://en.wikipedia.org/wiki/Certificate_authority)簽名的證書。 – mpontillo 2012-03-16 05:59:38

+0

將在公共互聯網上,實際上它是一個支付網關,因此安全性是一個大問題。 – 2012-03-16 06:04:39

回答

2
+0

雖然這可能在理論上回答這個問題,但[這將是更可取的](http://meta.stackexchange.com/q/8259)在這裏包括答案的基本部分,並提供供參考的鏈接。 – 2012-03-16 12:26:03

2

你就近了。 SSL使用x.509證書。 x.509是證書標準。確保Firefox能夠理解IIS提供的證書。但是,x.509證書不僅僅用於SSL。它也用於簽署文檔,簽名應用程序,安全密鑰交換等。

SSL(安全套接字層)是一種安全通信協議,使用這些證書來證明您的服務的身份。當客戶端連接到您的服務時,它會呈現綁定到您的域的x.509證書,該證書由客戶端也信任的證書頒發機構(CA)簽署。大多數情況下,它是從第三方CA購買的,例如Verisgn,GoDaddy,Entrust或其他無數的CA。

編輯基於新評論:

如果是面向公衆的,你肯定會想從第三方CA購買證書Verisign是最大的,但它們也是最昂貴的。

重要的是要注意,SSL和證書並不真正使Web服務「安全」。它只是保護客戶端通信,並防止攻擊者冒充你。也可能有其他安全問題。

+0

我無法控制客戶。事實上,我需要製作一個安全的API,稍後將轉售給外部各方的各種客戶。那麼就有一個問題。如果我購買了SSL證書,我可以使用它作爲X509進行身份驗證,並通過https確保安全的傳輸通道?或者在這種情況下我需要2個不同的證書嗎? – 2012-03-16 06:10:21

+0

也許我把答案稍微複雜一點。你是什​​麼意思,用它進行認證。 SSL將提供Web服務的身份驗證。它確保有人連接到您的API時,它確實是您的服務器。如果你在這個意義上談論認證,那麼你需要一個證書。 – mfanto 2012-03-16 06:12:49

+0

澄清 - SSL在正確配置時提供身份驗證和機密性。 WCF是否將證書用於SSL之外的事物?(這聽起來像只是爲了做一個HTTPS連接,但我不知道WCF那麼好) – mpontillo 2012-03-16 06:20:27