Управление сертификатами с помощью WCF

#wcf #x509certificate #certificate #nettcpbinding

#wcf #x509certificate #сертификат #привязка nettcpbinding

Вопрос:

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

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

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

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

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

Комментарии:

1. Если ваш вопрос заключается в том, как настроить и использовать свой собственный центр сертификации, то вопрос относится к ошибке сервера.

2. Что ж, если настройка нашего собственного центра сертификации является решением этой проблемы (не так ли?), То, возможно, это мой вопрос…

3. Да, я думаю, что это решение.

Ответ №1:

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

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

  1. Начните с настройки компьютера в качестве центра сертификации:

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

  3. Вы подтверждаете сертификат с точки зрения центра сертификации.

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

  5. Настройте конфигурацию WCF, чтобы использовать CA и сертификаты

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