Nancyfx通过HTTPS自托管

时间:2014-12-18 18:49:43

标签: c# https nancy

我尝试在自托管模式下启动nancyfx网​​络服务器。 执行以下代码时,一切正常:

 public static void Main(string[] args)
 {
        var hostConfig = new HostConfiguration
        {
            UrlReservations = new UrlReservations
            { 
                CreateAutomatically = true
            },        
        };

        var host = new NancyHost(hostConfig, new Uri("http://localhost:8081"));
        host.Start();

        Console.ReadLine();

        host.Stop();
}

但是,当我将uri更改为https://...服务器启动时,浏览器打开的每个连接都会立即关闭,浏览器会显示"网站不可用"。在浏览器因超时而关闭连接之前,连接甚至已关闭。

我在Windows上使用.NET 4.5运行应用程序。使用netstat -a我可以看出正确的端口是打开的。

我错过了什么吗? 谢谢你的帮助。

2 个答案:

答案 0 :(得分:13)

我已经开始工作了。我发现在这个过程中进行一些检查很有用。

CHECK1 - 证书是否正确添加? (正确使用证书管理MMC管理单元):

  • 在计算机上运行证书certutil -store MY
  • 您应该在那里看到证书详细信息(sha /用户创建/姓名等)
  • 如果没有停止。您可能已导入用户存储(或证书无效)。您必须从空mmc开始并导入MACHINE的证书。

CHECK2 - 网址是否正确添加到netsh中的urlacl列表? (使用netsh http add urlacl)?:

  • 将uri添加到acl run netsh http show urlacl
  • 之后
  • 如果您的uri / port未列出STOP。该网址未正确添加。

CHECK3 - ssl绑定到urlacl ? (使用netsh http add sslcert

  • 运行add sslcert命令后运行netsh http show sslcert
  • 如果未列出您的port / sha组合,请检查sha没有空格/ appid是唯一/ app id +用引号括起来的大括号(如果从PS执行)

希望它有所帮助。经过6个小时的撞击,我创造了上述内容。它现在有效!

答案 1 :(得分:4)

也许你错过了SSL证书配置和url acl config。

查看此帖子:https://coderead.wordpress.com/2014/08/07/enabling-ssl-for-self-hosted-nancy/