使用 appcmd 添加 ssl 绑定时出错
Posted
技术标签:
【中文标题】使用 appcmd 添加 ssl 绑定时出错【英文标题】:Error using appcmd to add ssl binding 【发布时间】:2012-03-25 21:08:10 【问题描述】:我想使用 appcmd 将绑定添加到站点。但是当我尝试以下命令时,我得到一个错误:
appcmd set site /site.name:"My site name" /+bindings.[protocol='https',bindingInformation='*:443:sub.mydomain.com']
错误:
ERROR ( message:Cannot find SITE object with identifier "bindingInformation='*:443:sub.mydomain.com']". )
我检查了该站点是否存在并且确实存在。我做错了什么?
【问题讨论】:
【参考方案1】:如果您使用的是 PowerShell,则必须将 bindings 参数用双引号括起来,以便 PowerShell 在命令发送到 appcmd 之前不会解释单引号。
./appcmd set site /site.name: contoso /+"bindings.[protocol='https',bindingInformation='*:443:']"
来源:http://technet.microsoft.com/en-us/library/cc731692(v=ws.10).aspx
【讨论】:
谢谢!试图在 PowerShell 中进行这项工作时,我感到很头疼。 :)【参考方案2】:试试这个:
appcmd set site "My site name" /bindings:"https://sub.mydomain.com:443"
但是你的命令也是正确的。列出所有网站并确保您正在使用其中一个:
appcmd list site
【讨论】:
你从哪里得到没有/+
或/-
的语法?能否提供文档链接?【参考方案3】:
我在 Powershell 中遇到了绑定中冒号的问题。将它们连接起来解决了这个问题。
[string] $cmd = "$Env:windir\SysWOW64\inetsrv\APPCMD.exe"
$response = invoke-expression "$cmd add site /name:""$SiteName"" /id:$ID /+""bindings.[protocol='$Protocol',bindingInformation='$IP"+":$Port"+":']"" /physicalPath:""$Path"""
【讨论】:
【参考方案4】:您需要以管理员身份运行命令。
【讨论】:
【参考方案5】:我永远无法使用 *.mydomain.com 的通配符证书来完成这项工作,我认为这是一个非常友好的名称:“mydomain.com 加通配符”。我会运行上面的命令,进入 IIS 并查看绑定,它会在那里,但没有选择证书。选择证书将删除主机名并禁用它,因此我无法更改它。
我终于通过将通配符证书的友好名称更改为 IIS 预期的格式(“*.mydomain.com”)并通过 IIS 界面正常添加它来使其工作,不知道上面的 appcmd 命令是否可以工作。这个故事的寓意是给通配符证书一个标准形式的友好名称。
【讨论】:
【参考方案6】:我创建了一个批处理文件来实现这一点:
@echo off
set /p sitename="Enter the site Name (as displayed in IIS): " %=%
set /p siteurl="Enter the site Host Header(the site url): " %=%
set /p siteip="Enter the site IP Address (ip address or *): " %=%
set /p siteprotocol="Enter the site Protocol (http, https, etc): " %=%
set /p siteport="Enter the site Port (80, 443): " %=%
appcmd set site /site.name:"%sitename%" /+bindings.[protocol='%siteprotocol%',bindingInformation='%siteip%:%siteport%:%siteurl%']
pause
【讨论】:
以上是关于使用 appcmd 添加 ssl 绑定时出错的主要内容,如果未能解决你的问题,请参考以下文章
Ninject 激活 HttpConfiguration 时出错
RxSwift:将 RX 绑定添加到 UITextField 时出错:“Binder<String?>”类型的值没有成员“debounce”