docker 容器内 powershell 中的端口绑定
Port binding in powershell inside docker container
我在 IIS docker 容器中托管了一个网站,它正在侦听 443。我正在尝试使用 New-WebBinding 绑定另一个端口 - 10000。但是,它不起作用。该网站在 443 时仍可访问,但在 10000 时失败。我的新绑定命令如下所示:
New-WebBinding -Name "Default Web Site" -IPAddress "*" -Port 10000 -Protocol "https"
并且 Get-WebSites 确认该端口已绑定到默认网站。
在 docker-compose 文件中,我为两个端口都设置了端口转发,对 10000 的请求甚至没有到达容器(因为我在 IIS 中没有看到任何端口 10000 的条目日志。)。我还为端口 10000 设置了入站规则。这里有什么我遗漏的吗?
那10000端口绑定你设置证书了吗?
要设置证书,您可以使用此 PowerShell 脚本:
PS C:\WINDOWS\system32> Import-Module WebAdministration
PS C:\WINDOWS\system32> cd IIS:\SslBindings PS IIS:\SslBindings> get-item cert:\LocalMachine\MYABF581E134280162AFFFC81E62011787B3B19B5 | new-item 0.0.0.0!10000
7ABF581E134280162AFFFC81E62011787B3B19B5 是您的证书指纹。
要得到它,你可以 运行 这个命令:
Get-ChildItem -path cert:\LocalMachine\My
如果您不想硬编码指纹,这是我使用的代码:
$cert = (Get-ChildItem cert:\LocalMachine\My | where-object { $_.Subject -like "*$hostname*" } | Select-Object -First 1).Thumbprint
$binding = Get-WebBinding -Name "Default Web Site" -Protocol "https" -Port $port
$binding.AddSslCertificate($cert, "my")
我在 IIS docker 容器中托管了一个网站,它正在侦听 443。我正在尝试使用 New-WebBinding 绑定另一个端口 - 10000。但是,它不起作用。该网站在 443 时仍可访问,但在 10000 时失败。我的新绑定命令如下所示:
New-WebBinding -Name "Default Web Site" -IPAddress "*" -Port 10000 -Protocol "https"
并且 Get-WebSites 确认该端口已绑定到默认网站。
在 docker-compose 文件中,我为两个端口都设置了端口转发,对 10000 的请求甚至没有到达容器(因为我在 IIS 中没有看到任何端口 10000 的条目日志。)。我还为端口 10000 设置了入站规则。这里有什么我遗漏的吗?
那10000端口绑定你设置证书了吗? 要设置证书,您可以使用此 PowerShell 脚本:
PS C:\WINDOWS\system32> Import-Module WebAdministration
PS C:\WINDOWS\system32> cd IIS:\SslBindings PS IIS:\SslBindings> get-item cert:\LocalMachine\MYABF581E134280162AFFFC81E62011787B3B19B5 | new-item 0.0.0.0!10000
7ABF581E134280162AFFFC81E62011787B3B19B5 是您的证书指纹。 要得到它,你可以 运行 这个命令:
Get-ChildItem -path cert:\LocalMachine\My
如果您不想硬编码指纹,这是我使用的代码:
$cert = (Get-ChildItem cert:\LocalMachine\My | where-object { $_.Subject -like "*$hostname*" } | Select-Object -First 1).Thumbprint
$binding = Get-WebBinding -Name "Default Web Site" -Protocol "https" -Port $port
$binding.AddSslCertificate($cert, "my")