我有一個通用用例來實現Web服務(WCF)和使用此Web服務的Web客戶端。客戶端和服務都在發送和接收簽名和加密消息(消息級別安全性)。WCF使用證書(X.509)消息簽名和加密的消息級別安全
我可以有多個客戶端使用我的服務,因此需要在運行服務項目的服務器上安裝多個客戶端證書。
我已在個人和受信任的根證書頒發機構下的本地機器存儲中安裝了2個證書(服務證書和客戶端證書)。
makecert - SR LOCALMACHINE -ss我-a -n SHA1 「CN = WCFServer」 -len 2048 -sky交換-pe
makecert - SR LOCALMACHINE -ss我-a -n SHA1「CN = WCFClient「-len 2048 -sky exchange -pe
儘管證書給我錯誤」許可證的完整性不能保證「,但現在我不在乎這個問題。
Web客戶端需要通過自己的私鑰對請求消息進行簽名,並通過服務證書公鑰加密消息。
服務接收請求並通過客戶端的公鑰驗證消息的簽名,並通過自己的私鑰
不是過程解密內容的請求,並創建一個響應對象。 現在服務必須由自己的私鑰簽名響應,並通過客戶端公鑰對消息進行加密。
現在客戶端得到簽名和Encrpted響應。現在它通過服務公鑰驗證響應並使用它自己的私鑰解密消息。
這是整個Szenerio。我在本地開發機器上安裝了(客戶端和服務)X.509證書。我正在使用wsHttpBinding
,通訊正常。
對於OperationContract,我正在使用[ServiceContract(ProtectionLevel=ProtectionLevel.EncryptAndSign)]
進行ServiseContract和[OperationContract(ProtectionLevel = ProtectionLevel.EncryptAndSign, IsOneWay = false)]
。
我有以下問題: 我需要在我的代碼中籤名和加密/解密請求或響應消息(一次在客戶端,一次在服務代碼中)或web.config中的服務項目和客戶端項目中的配置是否足夠做所有這些東西?
我經歷了下面的代碼項目,它的工作正常。 http://www.codeproject.com/Articles/36683/simple-steps-to-enable-X-certificates-on-WCF
我的源代碼(Visual Studio項目),同時包含了證書可以用到位桶爲download here
任何一個可以告訴我,做我需要做的所有這些東西在代碼或它的通過我的當前配置完成。
在此先感謝。