Nancyfx通过HTTPS自托管

Scy*_*man 4 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();
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

pen*_*eri 15

我有它的工作.我发现在这个过程中进行一些检查很有用.

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

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

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

  • 将uri添加到acl运行后 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个小时的撞击,我创造了上述内容.它现在有效!


小智 5

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

检查这篇文章:https : //coderead.wordpress.com/2014/08/07/enabling-ssl-for-self-hosted-nancy/