Я искал правильный способ защитить службу WCF, которая размещена в службе Windows и в приложении WPF Desktop соответственно (2 службы).
Я пробовал так много примеров и примеров, ичитайте так, могут разные способы делать вещи, которые я сейчас настолько растерялся, что понятия не имею, что делать.
В скорлупе ореха - вот сценарий ...
У меня есть окнасервис, который позволяет клиентским приложениям подключаться к нему по корпоративной сети.
Все коммуникации здесь осуществляются за корпоративным брандмауэром.Ничего общедоступного.
Теперь - мне удалось заставить все работать нормально, используя basichttpBinding, на котором включена проверка подлинности Windows.
Проблема в том, что мне нужно передавать все безопасно - без использования http.
Итак, я подумал, что будет довольно простой задачей - просто сгенерировать сертификат (не обязательно должен быть коммерческим сертификатом - просто сертификат dev с использованием MakeCert), и я могу загрузить этот сертификат из файла изащитите трафик этим - о, как я ошибался !!Это непросто из того, что я прочитал.
Для сравнения: на каждом сервере работает 100 серверов, и к этой службе могут обращаться более 500 настольных клиентов.При необходимости с каждым клиентом может связаться любой из 100 серверов.
Кроме того, серверам разрешено связываться друг с другом, если они тоже этого требуют - и они регулярно это делают.
Создание 600+ сертификатов и загрузка их в хранилище сертификатов каждого компьютера недействительно вариант - и можете ли вы представить обновления через год или два ...
То, что я надеялся сделать, - это создать файл сертификата для сервера - и один для клиента, ираспределите файл сертификата с каждым экземпляром серверного или клиентского приложения соответственно.Когда клиент или сервер запускается и открывает свой узел службы WCF - он использует сертификат в своем пути для шифрования трафика.Я собирался отключить все проверки отзыва, так как это будут сертификаты из ненадежных источников - но, как я уже говорил, это было нормально.
До сих пор - мне совершенно не повезло найти способ сделать это - на самом деле - яЯ не уверен, что сейчас это правильный способ сделать это, и если мой подход с использованием basichttpbinding был правильным.
Я также попытался пойти по пути net.tcp вместо http - но я не смог получить Visual StudioГенератор справочников услуг, чтобы найти сервис - или если он делал это, он всегда терпел неудачу с ошибками.
Учитывая сценарий, который я обрисовал в общих чертах выше, - может кто-нибудь подсказать, пожалуйста, правильный способ получения зашифрованных соединений между сервером и клиентом (и наоборот).Могу ли я сделать несколько небольших изменений в моих базовых HttpBindings, чтобы включить ssl, используя сертификаты моего отдельного Сервера или Клиента, или я подталкиваю общеизвестно! ^ & #% В гору?
Любой совет будет приветствоваться или ссылкак руководству, которое может соответствовать сценарию, который я описал, чтобы я мог его отсортировать.
Любая помощь приветствуется
С уважением
Удочка.