2014-01-28 2 views
0

Я использую службы WCF с C#. Я использую режим безопасности транспорта, устанавливая сертификаты клиента и службы.Безопасность транспорта WCF, динамическое изменение сертификатов

В середине операции я хотел бы изменить сертификаты, которые я использую, и использовать сертификаты, подписанные другим ЦС.

Возможно ли изменить эти сертификаты в середине операции без перезапуска хоста службы? Если да, то как?

Является ли это достаточно, если я просто позвонить установить сертификат с другой сертификат передается:

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

Кто-то сталкивался с этой проблемой и решить ее?

+0

Зачем вам это нужно? В любом случае, смена одного или обоих будет скорее всего неисправна в канале, требуя, чтобы соединение было восстановлено. Это предполагает, что вы можете даже изменить их, что я сомневаюсь, поскольку большинство вещей задано до того, как хост или клиент открыты и не могут быть изменены. – Tim

+1

Вы не можете изменять сертификаты без перезапуска веб-службы, к сожалению. Я подробно рассмотрел это. Невозможно это сделать. Извините – Brian

+0

Спасибо за комментарии. – mandjeo

ответ

0

Я тестировал это как проблему с высокой доступностью. Вы не можете этого сделать. Служба получает свой сертификат, когда открывается ServiceHost и никогда больше.

Если ваша цель заключается в поддержке HA, вам необходимо разместить несколько сервисов за балансировщиком нагрузки и перезапустить их один за другим.

+0

OP: Пожалуйста, не отмечайте это как принято, пока у @Brian есть шанс ответить (он ответил на это передо мной, в комментарии). – JohnC

0

Вы не можете изменять сертификаты без перезапуска веб-службы, к сожалению. Я подробно рассмотрел это. Невозможно это сделать. К сожалению,

Смежные вопросы