Ну, есть две части уравнения:
- у вас может быть сервер сертификат, который служба использует для аутентификации клиентов (чтобы доказать, что это действительно служба, которую она утверждает)
- у вас может быть клиентский сертификат, который необходим клиенту для подтверждения своей личности на сервере
Что вас интересует?
Как правило, если у вас есть сертификат сервера / службы, клиент либо «узнает» открытый ключ сервера (его можно установить в хранилище сертификатов клиента, например, с помощью программы установки, либо загрузив и установив его), либо он запросит сертификат сервера во время создания прокси и сохранит открытый ключ сервера в файле конфигурации локального клиента для дальнейшего использования. Затем эта конфигурация снова будет установлена вместе с приложением на клиенте.
Если клиент хочет пройти аутентификацию на основе службы, ему определенно нужно будет установить свой сертификат клиента локально в хранилище сертификатов клиентского компьютера.
Я бы порекомендовал проверить Руководство по безопасности WCF - это отличный ресурс, и они могут объяснить, как сделать определенные сценарии намного лучше, чем я!
В среде с полностью Windows, в которой все находятся в одном домене, это кажется излишним - почему бы просто не использовать встроенные учетные данные, предоставленные Windows? Думаю, было бы намного проще.
Марк