2014-01-28 55 views
0

我在C#中使用WCF服務。 我通過設置客戶端和服務證書來使用傳輸安全模式。WCF傳輸安全性,動態更改證書

在操作過程中,我想更改我正在使用的證書並使用由其他CA簽名的證書。

是否可以在操作過程中更改這些證書而無需重新啓動服務主機?如果是這樣如何?

它是不夠的,如果我只需要調用其他證書設置證書傳遞:

serviceHost.Credentials.ServiceCertificate.SetCertificate(...) 
serviceHost.Credentials.ClientCertificate.SetCertificate(...) 

有人也遇到這個問題並解決它?

+0

你爲什麼要這麼做?無論如何,更改其中一個或兩個都很可能會使渠道出現故障,需要重新建立連接。這是假設你甚至可以改變它們 - 我懷疑,因爲大多數事情都是在主機或客戶端打開之前設置的,無法更改。 – Tim

+1

不幸的是,您不能在不重新啓動Web服務的情況下更改證書。我已經深入研究了這一點。沒有辦法做到這一點。對不起 – Brian

+0

感謝您的意見。 – mandjeo

回答

0

我已經測試過這是一個高可用性問題。你做不到。服務主機打開時服務獲取證書,永不再次。

如果您的目標是支持HA,則需要將多個服務放在負載均衡器後面並逐個重新啓動它們。

+0

OP:請不要將此標記爲已接受,直到@Brian有機會回答(他在我之前回答它,在評論中)。 – JohnC

0

不幸的是,您不能在不重新啓動Web服務的情況下更改證書。我已經深入研究了這一點。沒有辦法做到這一點。對不起