IIS7: não é possível definir o nome do host no site com o certificado SSL e a porta 443

43

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.

    
por p.campbell 23.12.2009 / 00:23

10 respostas

28

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:

link

    
por 23.12.2009 / 03:35
40

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.

    
por 16.12.2011 / 15:03
10

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 .

    
por 23.12.2009 / 03:28
7

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

  1. Abra o IIS, selecione seu servidor e clique duas vezes em "Certificados do servidor" na seção inferior. Observe o endereço "Emitido para". Este é o nosso nome de host. Guarde isto.
  2. Selecione seu site
  3. Vincule seu site à porta 80 usando o protocolo http
  4. Remover todas as outras ligações
  5. Vincule seu site à porta 443 usando o protocolo https
  6. Abra um prompt de comando

    netsh http show sslcert
    
  7. Salve o hash do certificado e o ID do aplicativo

  8. Remova a ligação https no seu site
  9. 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.

  1. Remova a ligação http do seu site
por 19.11.2014 / 19:15
2

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

    
por 27.01.2011 / 00:12
2

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:

  1. Executar mmc.exe desde o início
  2. Vá para o menu File e escolha Add/Remove Snap-in... ou clique em (Ctrl-M)
  3. Destaque o snap-in 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.

    
por 15.03.2016 / 15:40
1

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']

    
por 11.02.2013 / 17:22
-1

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 23.12.2009 / 03:52
-1

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!

    
por 22.01.2010 / 18:54
-2
  1. 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',

  2. 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 '

    
por 31.03.2016 / 12:27