NancyFX 和 IPv6 问题
NancyFX and IPv6 issues
我有一个客户端-服务器应用程序,它使用带有自签名证书和 Nancy Selfhost 服务器的 https 连接工作。
安装应用程序后,我 运行 使用以下脚本来准备服务器。
- 添加 SSL 证书进行存储
- 检查 ip:ports 配置 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/
- 然后添加 url 保留:netsh http add urlacl url=https://+:4443/ user=everyone
- 添加 SSL 证书:
- netsh http 添加 sslcert ipport=0.0.0.0:4443 certhash=XXX appid={XXX}
- netsh http 添加 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 这个 returns IPv6 地址的主机名。
启动客户端应用程序时,出现以下错误:
底层连接已关闭:无法为 ssl/tls 安全通道建立信任关系
现在我卡住了,因为我不确定为什么它不起作用。
显然我有一些旧的认证注册和 url 保留仍然有效。全部清除后问题解决
我有一个客户端-服务器应用程序,它使用带有自签名证书和 Nancy Selfhost 服务器的 https 连接工作。
安装应用程序后,我 运行 使用以下脚本来准备服务器。
- 添加 SSL 证书进行存储
- 检查 ip:ports 配置 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/
- 然后添加 url 保留:netsh http add urlacl url=https://+:4443/ user=everyone
- 添加 SSL 证书:
- netsh http 添加 sslcert ipport=0.0.0.0:4443 certhash=XXX appid={XXX}
- netsh http 添加 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 这个 returns IPv6 地址的主机名。
启动客户端应用程序时,出现以下错误: 底层连接已关闭:无法为 ssl/tls 安全通道建立信任关系
现在我卡住了,因为我不确定为什么它不起作用。
显然我有一些旧的认证注册和 url 保留仍然有效。全部清除后问题解决