【发布时间】:2019-04-18 16:29:23
【问题描述】:
我在 .netcore 中创建了一个 HttpListener 来侦听特定端口上的传入请求,我需要将 ssl 证书绑定到 Ubuntu(版本 18.04.2 LTS)上的端口 8202,但不确定如何。我的谷歌搜索使用 Apache(或另一个我没有运行的网络服务器)或使用 httpcfg 但我没有使用单声道的虚拟主机。
我在我的 Windows 机器上创建了这个应用程序,一旦我使用“netsh http add sslcert”,一切都运行良好,在 linux 端,应用程序在列出到 http: 但不是 https: 时运行良好。如果需要,我愿意安装 Apache 并设置虚拟主机,但我觉得我遗漏了一些东西/它过于复杂。 下面是侦听器的创建,应用程序的其余部分与处理请求/数据有关,因此不相关(尽管会在需要时发布)
// start listing on port
HttpListener listener = new HttpListener();
string url = "https://serverfqdn:8202/middleman/";
listener.Prefixes.Add(url);
try
{
listener.Start();
}
catch (Exception e)
{
Console.WriteLine("bruh i broke");
Console.WriteLine(e.Message);
}
现在,当我在 https 上的 Ubuntu 框列表上运行此应用程序并运行测试时,我收到错误:“无法从传输连接读取数据:现有连接被远程主机强行关闭。”
如前所述,如果它在 http 上列出,一切正常,我会得到适当的响应。
【问题讨论】:
-
@Renat 我不确定这是否真的适用,除非我对这一切如何运作有根本的误解。这似乎没有将证书绑定到端口,而只是 .netcore 应用程序获取证书的位置/方式。