C# 将HttpListener绑定到Linux/Ubuntu中特定端口上的https

C# 将HttpListener绑定到Linux/Ubuntu中特定端口上的https,c#,ubuntu,ssl,.net-core,C#,Ubuntu,Ssl,.net Core,我在.netcore中创建了一个HttpListener来监听特定端口上的传入请求,我需要将ssl证书绑定到Ubuntu(版本18.04.2 LTS)上的端口8202,但不确定如何绑定。我的谷歌搜索带来了使用Apache(或我没有运行的另一个web服务器)或使用httpcfg的虚拟主机,但我没有使用mono 我在我的windows机器上创建了这个应用程序,当我使用“netsh-http-add-sslcert”时,一切都运行得非常好。在linux端,该应用程序在登录到http:而不是https:

我在.netcore中创建了一个HttpListener来监听特定端口上的传入请求,我需要将ssl证书绑定到Ubuntu(版本18.04.2 LTS)上的端口8202,但不确定如何绑定。我的谷歌搜索带来了使用Apache(或我没有运行的另一个web服务器)或使用httpcfg的虚拟主机,但我没有使用mono

我在我的windows机器上创建了这个应用程序,当我使用“netsh-http-add-sslcert”时,一切都运行得非常好。在linux端,该应用程序在登录到http:而不是https:时运行得很好。如果需要的话,我愿意安装Apache并设置虚拟主机,但我觉得我遗漏了一些东西/这太复杂了。 下面是监听器的创建,应用程序的其余部分与处理请求/数据有关,因此不应该是相关的(尽管在需要时会发布)

现在,当我在https上的Ubuntu框上运行这个应用程序并运行测试时,我得到了一个错误:“无法从传输连接读取数据:远程主机强制关闭了一个现有连接。”


如前所述,如果它在http上列出,则一切正常,我会得到适当的响应。

这有帮助吗@雷纳:我不确定这是否真的适用,除非我对这一切是如何运作有一个根本性的误解。这似乎并没有将证书绑定到端口,但只是.netcore应用程序获取证书的一个位置/方式。这有帮助吗@雷纳:我不确定这是否真的适用,除非我对这一切是如何运作有一个根本性的误解。这似乎并没有将证书绑定到端口,但只是.netcore应用程序获取证书的一个位置/方式。
                  // 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);
            }