Я уже работал с WCF - но так как он был только для внутреннего использования, вообще недоступен из Интернета, я просто использовал net.tcp и не особо заботился о безопасности.
Однако сейчас я готовлюсь к проекту, который будет доступен клиентам через Интернет, поэтому необходимо планировать безопасность.
Я провел некоторое исследование по этому вопросу, и из чегоя понял (поправьте меня, если я ошибаюсь здесь), HTTPS - моя лучшая ставка, поскольку HTTP вообще не защищен (по умолчанию), и net.tcp может найти проблемы с некоторыми брандмауэрами.
ХауэреЯ не хочу заставлять клиентов устанавливать IIS на своих серверах, если они этого не хотят, поэтому мы планируем использовать службу Windows, размещенную самостоятельно.Тем не менее, я не могу найти какую-либо информацию о том, как настроить сервер для использования HTTPS без IIS.
Я нашел информацию об использовании makecert
и httpcfg set ssl
для добавленияновый сертификат в магазине, а затем установить его в порт - это нормально для тестирования, но я не вижу этого выполнимым на сервере клиента - не говоря уже о том, что я буду использовать самозаверяющий сертификат - снова хорошо для тестирования,не так много в производстве
Я также нашел информацию ( ServiceCredentials MSDN page ) об использовании чего-то вроде
sh.Credentials.ServiceCertificate.SetCertificate(
StoreLocation.LocalMachine, StoreName.My,
X509FindType.FindByThumbprint,
"af1f50b20cd413ed9cd00c315bbb6dc1c08da5e6");
для установки сертификата, который уже находится в хранилище сертификатов сервера - это было бы почти нормально - для этого все же требуется, чтобы клиент знал, как управлять сертификатами в хранилище, не идеально, но нормально.Однако я не мог заставить его работать - я не получаю никакой ошибки при запуске службы, но если я пытаюсь перейти на адрес службы в браузере, я получаю ошибку, касающуюся устаревания TLS - Q1: Любая идея, чтоможет быть проблема здесь?
Q2: возможно ли иметь конфигурацию где-нибудь, где клиент мог бы ввести имеющийся или, по крайней мере, местоположение для файлов сертификата и ключа, получаемых при покупке сертификата, и использовать их для защитыуслуга?