Управление сертификатами с WCF - PullRequest
1 голос
/ 11 мая 2011

У нас есть центральная служба WCF, которую мы предоставляем через netTcpBinding для двусторонней связи с клиентами.

Мы хотим разрешить только определенным компьютерам в Интернете взаимодействовать с этой службой WCF. Путь, по которому мы идем, - это использование сертификатов X509 для защиты транспортного уровня и обеспечения аутентификации клиента, например:

  <security mode="Transport">
    <transport clientCredentialType="Certificate"></transport>
    <message clientCredentialType="None"/>
  </security>

В данный момент мы вызываем «MakeCert» для генерации сертификатов X509 и должны указать certificateValidationMode="PeerTrust", чтобы обойти тот факт, что мы создали наши собственные самозаверяющие сертификаты.

Мой вопрос: как нам следует управлять клиентскими сертификатами? Мы не хотим, чтобы каждый клиент покупал собственный сертификат - их может быть сотни, и это не вариант. Я полагаю, что мы хотим выступить в качестве нашего собственного "корневого органа", но я не уверен, как это сделать ...

1 Ответ

0 голосов
/ 11 мая 2011

Если вы не хотите, чтобы каждый клиент покупал свой сертификат у надежного поставщика сертификатов, такого как Verisign, другие 2 варианта - либо создавать самозаверяющие сертификаты, как вы это делали (должны использоваться только для тестирования), либо создавать Ваша собственная PKI (инфраструктура закрытого ключа).

Я думаю, что создание собственной PKI в вашем случае - это путь. Как и другие говорили в комментариях:

  1. Начните с настройки машины в качестве центра сертификации:

    • Установка служб сертификации Active Directory (роли сервера)
    • Настройте его как корневой CA
    • Настройка криптографии, имени и достоверности для этого CA
  2. Затем заставьте клиентов запрашивать сертификаты у этого CA.

  3. Вы одобрили сертификат с точки зрения CA.

  4. Клиент устанавливает сертификат.

  5. Настройка конфигурации WCF для использования CA и сертификатов

Надеюсь, это поможет.

...