2014-01-15 21 views
0

這裏是我的情況:如何使用WCF郵件安全與外部客戶

我需要主機將由多個客戶消耗一個WCF Web服務應用程序。每個客戶都負責他們自己的客戶端應用程序,他們將使用不同的技術構建他們的客戶端應用程序。很可能他們的客戶都不會是.Net(可能是Java或其他)。

我需要實施消息級安全性以遵守其策略(傳輸安全性不足)。

鑑於上述要求,我很難理解如何實現WCF中的消息安全性,這可以由我不控制的客戶端使用。我讀過的所有內容都討論了我將構建自己的客戶端的情況,並且客戶端甚至會在我的網絡域中。

如果我使用證書實現消息安全,是否可以在我的服務器上安裝一個證書,並讓每個客戶端負責在服務器上安裝自己的證書?那麼我們能夠通過簡單地共享公鑰來使用Message Security嗎?

回答

1

基本上,你在最後一段中說的是真的。您將爲您的WCF服務的訂閱者提供他們將在其客戶端計算機的LocalMachine/My商店中安裝並註冊的公鑰(.cer)文件。

在主機端,您需要在LocalMachine/TrustedPeople存儲中安裝證書公鑰,並在主機LocalMachine/Personal存儲中安裝私鑰(.pfx或.pvk)。

您可以稍微改變安裝/註冊表位置的公鑰和私鑰的位置,但是您必須配置WCF服務以在服務器上查找這些證書元素。客戶也必須這樣做。

這是行不通的。我已經完成了。

您可以使用.bat文件以及makecert.exe和certmgr.exe DOS命令自動執行一些操作,以確保將所有內容安裝在正確的位置。

+0

聽起來像我在正確的軌道上,很高興聽到你已經做到了這一點。我只想澄清一件事:我需要導出我的證書的公鑰並將其提供給每個客戶,並且他們需要將他們的證書導入。反過來,他們需要導出他們各自證書的公鑰,並且我需要導入這些公鑰。正確? – Stoop

+1

您只需要將您的公鑰(.cer)發送給他們,因爲您是主持人。你不需要他們的任何證書。 他們需要在任何將作爲主機客戶機的機器上安裝證書。出於測試目的,您可以使用Windows中的makecert函數使用自己創建的證書。這會爲你和你的客戶節省一些錢,但是當生產時間到來時......你知道。 – Brian