É possível usar o mapeamento curinga no IIS7

2

Gostaria de apontar o usuário test1.domain.com test2.domain.com etc sem adicionar manualmente a vinculação de cabeçalho no IIS7. Isso é possível? Se não automaticamente, posso adicionar o cabeçalho do host por meio de programação?

    
por Ronnie 18.05.2009 / 17:52

3 respostas

2

Sim, você pode.

É possível usar um certificado SSL curinga e um único IP.

Eu posso detalhar como testar isso usando um caractere curinga auto-assinado.

Pré-requisitos

  • MakeCert.exe (que deve fazer parte de uma instalação do Visual Studio ou disponível para download aqui )
  • winhttpcertcfg.exe ( faça o download aqui )
  • APPCMD (parte do Vista / Server 2008 / Windows 7)
  • Snap-in 'Certificados' para computadores pessoais e locais usando o MMC

Método

Execute o seguinte comando em um prompt de comando

makecert -r -pe -n CN=*.domain.com -ss my -sr currentuser -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 wildcard.domain.cer

então

  • No comando RUN ou no menu Iniciar, digite MMC
  • Arquivo > Adicionar ou remover snap-ins - selecione Certificados, clique em Adicionar, selecione Minha conta de usuário, clique em Concluir
  • Repita a etapa anterior e selecione Meu computador (e selecione Computador local)
  • Clique em OK
  • Expandir certificados - usuário atual > Pessoal > Certificados
  • Clique com o botão direito do mouse em * .domínio.com e em Todas as tarefas > Exportar. O arquivo PFX contém a chave pública e privada para este certificado, portanto, por que você solicitou uma senha.
  • Copiar ou mover o certificado do usuário atual > Pessoal > Certificados para computador local > Autoridades de certificação raiz confiáveis > Certificados
  • Importe o PFX para o computador local > Pessoal > Certificados (este será o certificado usado pelos seus serviços da Web.

Agora vamos criar seus servidores da web

  • Organize seu ambiente:)

Remover pools e sites de aplicativos de demonstração existentes

%windir%\system32\inetsrv\Appcmd delete site "Demo 1"
%windir%\system32\inetsrv\Appcmd delete site "Demo 2"
%windir%\system32\inetsrv\Appcmd delete AppPool "Demo 1 App Pool"
%windir%\system32\inetsrv\Appcmd delete AppPool "Demo 2 Portal App Pool"
  • Estabelecer ambiente SSL

Diga às janelas que o serviço de rede tem permissão para acessar seu certificado curinga. e diga para ligar o certificado à porta 443 em seu endereço IP

PathToWinHTTPCertCfg\winhttpcertcfg -g -i "wildcard.domain.com.pfx" -c LOCAL_MACHINE\My -a “Network Service” -p MySecretPassword
 netsh http add sslcert ipport=<YOURLOCALIPADDRESS>:443 certhash=<CERTIFICATE THUMBPRINT> appid=<A GUID IN THE FORM OF {ab3c58f7-8316-42e3-bc6e-771d4ce4b201}>
  • Criar pools de aplicativos e sites

Este é o código para criar pools e sites de aplicativos

%windir%\system32\inetsrv\Appcmd add site -id:100 -name:"Demo 1" -bindings:http/*:80:YOURLOCALIPADDRESS -physicalPath:<PathToDemo1Source> -logfile.directory:<PathToPutLogFilesIn> -traceFailedRequestsLogging.directory:<PathToPutTraceFiles>
%windir%\system32\inetsrv\Appcmd set app "Demo 1/" -applicationPool:"Demo 1 App Pool"
%windir%\system32\inetsrv\Appcmd set site /site.name:"Demo 1" /+bindings.[protocol='https',bindingInformation='*:443:demo1.domain.com']

%windir%\system32\inetsrv\Appcmd add site -id:200 -name:"Demo 2" -bindings:http/*:80:YOURLOCALIPADDRESS -physicalPath:<PathToDemo2Source> -logfile.directory:<PathToPutLogFilesIn> -traceFailedRequestsLogging.directory:<PathToPutTraceFiles>
%windir%\system32\inetsrv\Appcmd set app "Demo 2/" -applicationPool:"Demo 2 App Pool"
%windir%\system32\inetsrv\Appcmd set site /site.name:"Demo 2" /+bindings.[protocol='https',bindingInformation='*:443:demo2.domain.com']

... e isso deve ser você;) Divirta-se!

    
por 01.06.2009 / 13:06
1

Até onde sei, há apenas duas opções quando se trata de hospedar cabeçalhos no IIS7.

  1. Você configura um cabeçalho de host / tipo / porta / ip para cada domínio que deseja manipular.
  2. Você não configurou nenhum cabeçalho de host, mas inclui um tipo / port / ip no site que você deseja manipular os vários domínios.

A captura com a opção # 2 é que ele responderá a qualquer solicitação nessa porta e você não poderá usar a mesma porta em outro site sem um cabeçalho de host.

Pode haver um filtro ISAPI que você possa carregar no nível do servidor para interceptar a solicitação antes que ela chegue à parte do cabeçalho do host do processamento, mas pode ser mais fácil configurar um script para manipular a opção nº 1.

    
por 18.05.2009 / 18:10
1

Ao configurar uma entrada DNS curinga, você pode ter quantos nomes quiser no site padrão. Uma vez que o usuário acesse o site, se você precisar redirecioná-lo para outro site, faça com que seu arquivo default.asp procure o cabeçalho HOST para determinar se ele precisa redirecionar, caso contrário, vá em frente e carregue o restante do site.

Referências:

Cabeçalhos host de curinga com o IIS7

Lista de cabeçalhos HTTP

Eu não sou muito bom com o desenvolvimento da web, mas isso deve, pelo menos, ajudar você a começar.

    
por 19.05.2009 / 02:35

Tags