如何将 urlacl 添加到已使用的 443 端口?

如何将 urlacl 添加到已使用的 443 端口?

我正在尝试将 uralacl 提供给我的用户 ad\user,并运行以下命令:

netsh http add urlacl url=http://+:443/ user=ad\user

但出现此错误:Url 预留添加失败,错误:183 当文件已存在时无法创建文件。

然后我运行这个命令并查看它是否已被使用:

netsh http show url

我发现它已被保留,可能是由 IIS 保留的:

保留网址:https://+:443/sra_{BA195980-CD49-458b-9E23-C84EE0A DCD75}/ 用户:NT SERVICE\SstpSvc 侦听:是 委托:是 用户:BUILTIN\Administrators 侦听:否 委托:否 用户:NT AUTHORITY\SYSTEM 侦听:是 委托:是 SDDL:D:(A;;GA;;;S-1-5-80-3435701886-799518250-3791383489-3228296122 -2938884314)(A;;GR;;;BA)(A;;GA;;;SY)

我不想将我的用户添加到管理员。

所以我的问题是:我是否可以以某种方式将我的用户添加到此 urlacl,而无需删除然后添加它?这样,urlacl 的结果相同,但包括我的用户。

答案1

问题不在于重复使用端口……而是重复使用相同协议的端口。Http.sys 不允许您在同一端口上侦听 https 和 http(我还没有看到支持此功能的服务,也没有看到需要这样做,尽管我认为您可以尝试使用 TCP 套接字自己创建一个)。似乎 MS 正在尝试在 urlacl 中强制执行该限制。这有点道理。如果两个应用程序尝试使用两种不同的协议打开连接,http.sys 应该使用哪种协议?

请注意,如果您改为向端口 443 添加另一个 https url,则不会出现问题(只要 URL 的路径与现有记录不同)。遗憾的是,netsh 的错误消息没有解释更多信息。

相关内容