gpt4 book ai didi

c# - 在 Linux/Ubuntu 的特定端口上将 HttpListener 绑定(bind)到 https

转载 作者:行者123 更新时间:2023-12-04 18:33:32 26 4
gpt4 key购买 nike

我在 .netcore 中创建了一个 HttpListener 以在特定端口上监听传入请求,我需要将 ssl 证书绑定(bind)到 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 上列出一切正常,我会得到适当的响应。

最佳答案

我知道这可能会迟到。但我希望可以帮助别人。我阅读了几种在 Linux 中运行的 C# 代码上实现/绑定(bind) SSL 的方法。但他们中的大多数人建议创建非常复杂的 SSL 证书。
下面分享我如何仅使用 Nginx/Apache 设置来重新路由非 ssl http (c#代码)到https地址。
保持代码非 ssl

server.Prefixes.Add("http://your-host-name.com:11110/");
然后为地址创建一个 Nginx/Apache 配置(我使用 Nginx):
server {
listen 11111 ssl http2; #port number for ssl
server_name your-host-name:11110;

ssl_certificate "/home/ssl/fullchain.pem";
ssl_certificate_key "/home/ssl/privkey.pem";

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

client_max_body_size 128m;
fastcgi_read_timeout 3000;
proxy_read_timeout 3000;
proxy_set_header Forwarded $proxy_add_forwarded;
proxy_buffering off;

include /etc/nginx/default.d/*.conf;

location / {
proxy_pass http://your-host-name:11110; #set default route
proxy_redirect off;
}
}

此配置适用于 Nginx 服务器。 Apache 配置更简单。您可以关注 000-default.conf sample 在 /etc/apache2/sites-available目录。

关于c# - 在 Linux/Ubuntu 的特定端口上将 HttpListener 绑定(bind)到 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55750247/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com