Я создаю Self-Host Web API. Чтобы защитить его, я изучил и внедрил эту статью, успешно создал локальный сертификат SSL, используя makecert, и моя служба прошла проверку подлинности и генерирует токены в порядке, если я использую
http://localhost/webapi/authentication/authenticate
но когда я пытаюсь получить доступ к моей службе с помощью HTTPS, я получаю следующее в Firefox:
SSL_ERROR_RX_RECORD_TOO_LONG
и по тому же запросу Fiddler показывает мне:
HTTP/1.1 502 Fiddler - дата сбоя подключения: понедельник, 26 августа 2013 г. 10:44:27 GMT Content-Type: text/html; charset = UTF-8 Подключение: закрыть Временная метка: 13: 44: 27,433
[Fiddler] Сбой подключения к локальному хосту.
Не удалось согласовать соединение HTTPS с server.fiddler.network.https > Не удалось защитить существующее соединение для localhost. Рукопожатие не удалось из-за неожиданного формата пакета.
Конфигурация моего хоста:
private HttpSelfHostServer _server;
private ExtendedHttpsSelfHostConfiguration _config;
public const string ServiceAddress = "https://localhost/webapi";
_config = new ExtendedHttpsSelfHostConfiguration(ServiceAddress);
_server = new HttpSelfHostServer(_config);
_server.OpenAsync();
где ExtendedHttpSelfHostConfiguration взято из этого сообщения:
public class ExtendedHttpSelfHostConfiguration : HttpSelfHostConfiguration
{
public ExtendedHttpSelfHostConfiguration(string baseAddress) : base(baseAddress) { }
public ExtendedHttpSelfHostConfiguration(Uri baseAddress) : base(baseAddress) { }
protected override BindingParameterCollection OnConfigureBinding(HttpBinding httpBinding)
{
if (BaseAddress.ToString().ToLower().Contains("https://"))
{
httpBinding.Security.Mode = HttpBindingSecurityMode.Transport;
}
return base.OnConfigureBinding(httpBinding);
}
}
Что мне не хватает? Спасибо заранее!