我正在创建自托管 Web API 服务。为了保护它,我已经研究并实施了这篇文章,使用 makecert 成功生成了本地 SSL 证书,并且我的服务经过身份验证并生成令牌很好,如果我正在使用
http://localhost/webapi/authentication/authenticate
链接,但是当我尝试使用 HTTPS 访问我的服务时,我在 Firefox 上得到以下信息:
ssl_error_rx_record_too_long
对于相同的请求,Fiddler 向我展示了:
HTTP/1.1 502 Fiddler - 连接失败日期:星期一,2013 年 8 月 26 日 10:44:27 GMT 内容类型:文本/html;charset=UTF-8 连接:关闭时间戳:13:44:27.433
[Fiddler] 到 localhost 的套接字连接失败。
无法与 server.fiddler.network.https 协商 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);
}
}
我错过了什么?提前致谢!