【问题标题】:how to add the IP address instead of being a localhost in selfsigned https webserver C#如何在自签名 https 网络服务器 C# 中添加 IP 地址而不是本地主机
【发布时间】:2019-10-07 07:01:12
【问题描述】:

如何在 C# 中的自签名 https 网络服务器中添加 IP 地址而不是本地主机

我尝试通过以下文章 https://www.humankode.com/asp-net-core/develop-locally-with-https-self-signed-certificates-and-asp-net-core 设置 https 它在本地主机中工作正常。这意味着在 https://localhost:44321

如果我尝试添加 IP,例如 https://192.168.0.10:44321(服务器的静态 IP);我无法从服务器本身或本地网络中的其他系统访问我的服务器。

环境是Linux

【问题讨论】:

  • 你试过C:\Windows\System32\drivers\etc\hosts文件吗?
  • 不,我在 Linux 中工作
  • 通常与您处理服务器名称的证书有关,因此您需要检查您尝试连接的 IP 以及与之关联的 DNS 名称
  • 我无法从服务器本身或本地网络中的其他系统访问我的服务器有点奇怪,您能否再次检查应用程序是否正在运行并打开端口44321?你可以使用netstat。并检查您的防火墙是否允许从本地主机访问。并仔细检查您是否将红隼配置为不仅收听所有 ipv4 127.0.0.1,请参阅 the docs - 您提供的链接中的 options.Listen,我认为应该是 ListenAnyIP
  • 我尝试了所有这些。但仍然无法正常工作

标签: c# ssl https


【解决方案1】:

New-SelfSignedCertificate cmdlet 的-DnsName 参数允许您提供主机名数组。不要在证书中包含 IP 地址,而是可以包含您的 $env:COMPUTERNAME 或其他标识您的服务器的字符串(可能使用 * 通配符)。

此外,“localhost”通常解析为 IPv4 地址 127.0.0.1/8 和 IPv6 ::1/128,但您的 $HOSTNAME/COMPUTERNAME 将解析为公共或 LAN 地址,如 192.168.0.10;您需要将您的网络服务器绑定到它侦听请求的所有地址(例如使用https://*:44321 作为基地址)。

【讨论】:

  • options.Listen(IPAddress.Any) 这是我错过的部分..现在它正在工作
猜你喜欢
  • 2019-12-26
  • 2015-11-18
  • 2010-09-17
  • 1970-01-01
  • 1970-01-01
  • 2014-02-26
  • 2019-08-18
  • 2019-02-05
  • 2021-01-14
相关资源
最近更新 更多