NancyFX和IPv6问题

时间:2016-09-27 07:55:49

标签: c# ssl ipv6 nancy

我有一个客户端 - 服务器应用程序,它使用带有自签名证书的https连接和Nancy Selfhost服务器。

安装应用程序后,我运行以下脚本来预备服务器。

  • 将SSL证书添加到商店
  • 检查巫婆:端口配置了 netsh http show sslcert
  • 删除端口号为4443的所有注册(仅当在上一步中找到它们时):
    • netsh http del sslcert ipport = 0.0.0.0:4443
    • netsh http del sslcert ipport = [::]:4443
    • netsh http del urlacl url = https://+:4443/
  • 然后添加网址预订: netsh http add urlacl url = https://+:4443/ user = everyone
  • 添加SSL认证:
    • netsh http add sslcert ipport = 0.0.0.0:4443 certhash = XXX appid = {XXX}
    • netsh http add sslcert ipport = [::]:4443 certhash = XXX appid = {XXX}

然后我启动服务器。启动自托管服务器的代码是:

public void Start(string baseUrl) {
        string url = baseUrl;
        Uri uri = new Uri(url);
        var uris = new[]
                {
                    new Uri($"{uri.Scheme}://localhost:{uri.Port}"),
                };
        server = new NancyHost(new CustomBootstrapper(url, Api1, Api2, applicationConfiguration), uris);            
        server.Start();
    }

在此代码中是 baseURL 机器的主机名。

客户端服务器连接在大多数情况下都有效,但有一种情况并非如此。这是当我尝试在特定计算机上运行服务器时。它与其他服务器有以下区别:

  • Windows 8
  • ping主机名会返回IPv6地址。

启动客户端应用程序时,会出现以下错误: 底层连接已关闭:无法为ssl / tls安全通道建立信任关系

现在我被困了,因为我不确定为什么它不起作用。

1 个答案:

答案 0 :(得分:0)

显然我有一些旧的认证注册和网址预订仍然有效。清除所有问题后,问题就解决了。