Это, похоже, распространенная ошибка (есть другие посты с похожими проблемами) - однако я просмотрел все эти посты и статьи MSDN (https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/working-with-certificates).Сценарий: попытка получить доступ к службе с помощью конечной точки HTTPS.Установка сертификата клиента в коде (сертификат загружается правильно).Что касается сертификата сервера, я пробовал оба варианта ниже:*
Я импортировал сертификат сервера в Личное, а также в машинное хранилище (центры / сертификаты Trusted Root).Странно то, что вызов проходит, когда я использую Charles Proxy в качестве SSL-прокси.Другие настройки:
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Ssl3;
ServicePointManager.ServerCertificateValidationCallback +=
(se, cert, chain, sslerror) =>
{
//Console.WriteLine(cert.GetCertHashString());
if (cert.GetCertHashString() == "[actual hash here]")
return true;
else
return false;
};
Приведенная выше проверка хеша работает нормально, когда работает прокси-сервер Charles.Без прокси-сервера обратный вызов даже не вызывается.
Любая обратная связь приветствуется.
(Возможно, стоит отметить, что Java-клиент, использующий библиотеку Apache CXF, работает нормально - для той же службы.)
Обновление : для полноты, оригинальная ошибкатакже имел следующий текст: Это может быть связано с тем, что сертификат сервера не настроен должным образом с HTTP.SYS в случае HTTPS.Это также может быть вызвано несоответствием привязки безопасности между клиентом и сервером.