使用appcmd添加ssl绑定时出错

时间:2012-03-08 11:11:13

标签: iis iis-7 https appcmd

我想使用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']". )

我检查了网站是否存在,确实存在。我做错了什么?

6 个答案:

答案 0 :(得分:14)

如果您正在使用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

答案 1 :(得分:10)

试试这个:

appcmd set site "My site name" /bindings:"https://sub.mydomain.com:443"

但你的命令也是正确的。列出所有网站并确保您使用其中一个:

appcmd list site

答案 2 :(得分:0)

我在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"""

答案 3 :(得分:0)

您需要以管理员身份运行命令。

答案 4 :(得分:0)

我无法使用* .mydomain.com的通配符证书进行此工作,我认为这是一个非常友好的名称:" mydomain.com加上通配符"。我运行上面的命令,进入IIS并查看绑定,它会在那里,但没有选择证书。选择证书将删除主机名并禁用它,因此我无法更改它。

我终于通过将通配符证书的友好名称更改为IIS(" * .mydomain.com")所期望的格式并通过IIS界面正常添加来实现它的工作,想法是否上述appcmd命令可行。这个故事的寓意是给通配符证书提供标准形式的友好名称。

答案 5 :(得分:0)

我创建了一个批处理文件来实现:

@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