我在 .netcore 中创建了一个 HttpListener 来侦听特定端口上的传入请求,我需要将 ssl 证书绑定到 Ubuntu(版本 18.04.2 LTS)上的端口 8202,但不确定如何操作。我的谷歌搜索显示了带有 Apache(或我没有运行的另一个网络服务器)或利用 httpcfg 的虚拟主机,但我没有使用 mono。
我在 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);
}
Run Code Online (Sandbox Code Playgroud)
现在,当我在 https 上列出的 Ubuntu 框上运行此应用程序并运行测试时,我收到错误:“无法从传输连接读取数据:现有连接被远程主机强制关闭。”
正如之前所说,如果它在 http 上列出,一切正常,我会得到适当的响应。