#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. Как и другие говорили в комментариях:
-
Начните с настройки компьютера в качестве центра сертификации:
- Установите службы сертификатов Active Directory (роли сервера)
- Настройте его как корневой центр сертификации
- Настройте криптографию, имя и действительность для этого центра сертификации
-
Затем заставьте клиентов запрашивать сертификаты у этого центра сертификации.
-
Вы подтверждаете сертификат с точки зрения центра сертификации.
-
Клиент устанавливает сертификат.
-
Настройте конфигурацию WCF, чтобы использовать CA и сертификаты
Надеюсь, это поможет.