Você não pode fazer isso a partir da interface do usuário, você tem que fazê-lo a partir da linha de comando. Aqui está um bom passeio do processo:
Considere uma máquina Win 2008 SP2 com o IIS7. A tarefa é aplicar um certificado e um nome de host ao único Site nessa máquina. Os cabeçalhos de host do site precisam ser abc.123.example.com
O primeiro passo foi instalar o arquivo .pfx no Personal Store, que teve sucesso.
O IIS7 encontra o certificado como disponível, mas não permite a entrada de um nome de host. A caixa de texto do nome do host está SEMPRE desabilitada / desabilitada, mesmo antes de selecionar meu certificado. Eu até deletei a ligação padrão da porta 80.
Pergunta: como posso definir um nome de host para este site? É uma questão de este certificado ser um certificado wildcard? Eu entendo que a solicitação SSL entra no servidor da Web e o cabeçalho do host no pacote é criptografado. Por que então o IIS6 permitiria que o cabeçalho do host fosse especificado, mas o IIS7 não?
Atualização: O certificado não faz parte do problema. Eu criei um novo site na máquina e, ao escolher a vinculação https, a caixa de texto do nome do host está desativada.
Você não pode fazer isso a partir da interface do usuário, você tem que fazê-lo a partir da linha de comando. Aqui está um bom passeio do processo:
Funciona na GUI ...
Apenas certifique-se de que o 'nome amigável' do certificado que você está instalando é o mesmo que o nome de domínio múltiplo que você criou para o certificado.
ie. * .companydomain.com
se você colocar 'Nice friendly name' para o certificado * .companydoman.com, ao instalar o certificado no IIS, ele ficará cinza na caixa de cabeçalho do nome do host.
Se você usa * .companyname.com como o nome amigável, você é de ouro.
Boom.
A resposta curta é que cada IP só pode ter um certificado vinculado a ele, portanto, a vinculação de certificado será aplicada independentemente do nome do host direcionado para esse endereço IP. Ser capaz de especificar um nome de host implicaria que você pode ter várias combinações de nome de host e certificado no mesmo endereço IP e porta (como pode com entradas não-SSL), mas isso não é o caso, portanto, o campo não está disponível. p>
A explicação mais completa é que o SSL criptografa seu tráfego e parte desse tráfego são os cabeçalhos HTTP enviados pelo navegador para o servidor. Um desses cabeçalhos seria o cabeçalho "Host" que o IIS usa para determinar qual site carregar com a solicitação. Como o certificado precisa ser carregado para estabelecer a conexão segura ANTES que os cabeçalhos de solicitação sejam enviados, o IIS precisa selecionar o certificado com base apenas no endereço IP e no número da porta, deixando o cabeçalho "Host" no frio como um fator determinante qual site carregar, para que eles não deixem você digitar um.
Este é um artigo que descreve em detalhes os funcionamentos internos da conexão SSL .
A resposta do SSLShopper não funcionou para mim porque deixou a ligação sem o cabeçalho do host e não foi possível remover essa ligação sem interromper a conexão com o certificado. Aqui está o método que eu usei para fazê-lo funcionar:
Observe que essa resposta assume que seu certificado já foi gerado, adicionado ao armazenamento de certificados e adicionado ao IIS. Ele também assume que você não deseja outras ligações para o seu site além do SSL.
Primeiro, precisamos reunir algumas informações. Precisamos do hash, do ID do aplicativo e do nome do host.
Etapas
Abra um prompt de comando
netsh http show sslcert
Salve o hash do certificado e o ID do aplicativo
No prompt de comando:
netsh http add sslcert ipport=0.0.0.0:443 certstorename=my certhash=<put Certificate Hash here> appid={<put Application ID here>}
appcmd set site /site.name:"<put site name here>" /+bindings.[protocol='https',bindingInformation='*:443:<put host name here>']
Nota: o Appcmd.exe pode ser encontrado em c: \ windows \ system32 \ insetsrv. Você pode precisar estar nessa pasta para que este comando funcione.
Na verdade, você pode adicionar um cabeçalho de host por meio da GUI, mas isso depende de como o certificado é nomeado ... se eu der um nome amigável de * .xyz.com ao meu certificado curinga e selecionar esse certificado, Eu sou capaz de usar o gui. se o nome amigável é algo como xyzwildcard, e eu escolho isso, então ele torna cinza o campo hostheader ...
estranho estranho
A resposta aceita aqui é confusa e não acho que esteja correta para a pergunta. Não deveria ser a resposta aceita.
O problema
Você tem um SSL curinga como *.ipsum.com
e o certificado está instalado, mas não é possível escolher um nome de host para o site no IIS ao tentar adicionar uma ligação HTTPS porque a caixa de texto está esmaecida.
A solução
Seu SSL curinga pode ser usado com qualquer subdomínio, você só precisa certificar-se de iniciar o nome amigável do certificado com *
. Eu prefiro usar o mesmo nome amigável que o domínio curinga, por exemplo *.ipsum.com
mas você pode chamar qualquer coisa que seja com o asterisco: *foo
Eu dei ao meu certificado o Nome Amigável errado, ajude!
Desde o Windows 8 ou Server 2012, você pode digitar certlm.msc
no menu Iniciar para gerenciar certificados para a máquina local. Nas versões anteriores do Windows, você precisará fazer algo um pouco mais complicado:
mmc.exe
desde o início File
e escolha Add/Remove Snap-in...
ou clique em (Ctrl-M)
Certificates
e clique em Add >
, em seguida, escolha Computer Account
seguido de Local Computer
nas caixas de diálogo subseqüentes, depois clique em Finish
seguido de OK
para fechar a janela Snap-ins Na janela principal, expanda Certificates (Local Computer)
, em seguida, Personal
, em seguida, Certificates
e você poderá clicar com o botão direito do mouse no certificado, acessar Properties
, onde poderá atualizar o nome amigável.
Feche e abra o Gerenciador do IIS e você poderá definir seu nome de host.
Algumas máquinas não permitem editar o nome do host se o protocolo for alterado para https ou após a adição de um certificado SSL. IIS pode ser mal-humorado às vezes.
Este comando do Windows criará uma nova ligação com o protocolo "https", na porta "443", nome do host "subdomain.domain.com", nome do site "nome do site". Altere esses valores (entre aspas) para atender aos seus requisitos. Você precisará excluir a ligação antiga se ela estiver usando a porta 443.
Run Windows Command Prompt as Administrator
C: > cd C:\Windows\System32\inetsrv
C: \ Windows \ System32 \ inetsrv > appcmd set site /site.name:"site_name" /+bindings.[protocol='https',bindingInformation='*:443:subdomain.domain.com']
Acho que este artigo da KB lançará alguma luz sobre o assunto. Em poucas palavras, os cabeçalhos de host HTTP 1.1 não são suportados quando você usa SSL.
O que provavelmente conseguirá o que você deseja é usar a chave da metabase SecureBindings. Por exemplo. cscript.exe adsutil.vbs set / w3svc / siteID / SecureBindings "ip.ip.ip.ip: 443: abc.123.mysite.com
Por que o MS tira este OUT da GUI está além de mim, já que, se você tem um aplicativo ASP.NET que faz uso de arquivos de licença (licx), seu site não funcionará porque aparece como um endereço IP em vez de um nome de domínio. Eles precisam PARAR DE ASSUMIR a cada nova versão do seu software - as pessoas de TI não precisam ser cuidadas pela Microsoft! Nossa!
Eu criei um certificado autoassinado com * .testcompany.com, selecionei o recém-criado (começando com *) na caixa suspensa Edit binding SSL Certificate, obtive a caixa de texto nome do host ativada, criei o host nome como 'webapi.b2c.com',
Eu atualizei o arquivo hosts em C: \ Windows \ System32 \ drivers \ etc 127.0.0.1 webapi.b2c.com
Agora posso navegar no site como " link '