Listas de fidedignidades de certificados no IIS7

5

Estou tentando ativar a autenticação mútua para meu WebService hospedado no IIS7. Tenho a configuração e o funcionamento do certificado do lado do servidor, mas não consigo descobrir como obter uma Lista de Confiança de Certificados criada e configurada no IIS7 para que eu possa exigir e validar certificados do lado do cliente.

Todos os certificados do lado do cliente são assinados pelo meu próprio certificado raiz, portanto, preciso criar um CTL que contenha apenas o meu certificado raiz e, em seguida, ter certificados do IIS para validar o cliente em relação ao CTL.

Alguém pode lançar alguma luz sobre como fazer isso? O IIS6 tinha uma interface do usuário para atribuir uma CTL, mas não consigo encontrar nada semelhante no IIS7.

Atualização: Eu agora usei com sucesso o MakeCTL no modo de assistente para criar um CTL com um nome amigável. No entanto, eu não tenho suporte adsutil na minha caixa IIS7 assim através de outras mensagens em outro lugar eu estou tentando usar o comando 'netsh http add sslcert' para atribuir o CTL ao meu site.

Antes de poder usar este comando, tive que remover o certificado SSL existente que foi atribuído ao meu site para autenticação do servidor. Em seguida, no meu comando netsh, especifico a impressão digital do mesmo certificado SSL removido, além de um appid composto, além de 'sslctlidentifier = MyCTL sslctlstorename = CA'. O comando resultante é:

netsh http add sslcert ipport = 10.10.10.10: 443 certhash = adfdffa988bb50736b8e58a54c1eac26ed005050 appid = {ffc3e181-e14b-4a21-b022-59fc669b09ff} sslctlidentifier = MyCTL sslctlstorename = CA

(o endereço IP é copiado), mas estou recebendo este erro:

Falha ao adicionar certificado SSL, Erro: 1312 Uma sessão de logon especificada não existe. Pode já ter sido terminado.

Tenho certeza de que o erro está relacionado às opções de CTL, porque, se eu removê-las, ele funcionará (embora nenhuma CTL seja atribuída, é claro).

Alguém pode me ajudar a dar esse último passo e fazer isso funcionar?

ATUALIZAÇÃO 01-07-2010: Eu nunca resolvi isso com o IIS 7.0 e desde então migrei nosso aplicativo para o IIS 7.5 e estou dando outra chance. De acordo com a resposta de Taras Chuhay, instalei o IIS6 Compatibility no meu servidor de teste e tentei as etapas que ele documentou usando o adsutil.vbs (que também pode ser encontrado aqui ). Eu imediatamente corri para este erro:

ErrNumber: -2147023584 Erro ao tentar definir a propriedade: SslCtlIdentifier

ao executar este comando:

adsutil.vbs define w3svc / 1 / SslCtlIdentifier MyFriendlyName

Depois, experimentei o próximo comando adsutil.vbs documentado e ele falhou com o mesmo erro.

Eu verifiquei que o CTL que eu criei tem um nome amigável de MyFriendlyName e que ele existe na loja 'Intermediate Certification Authorities \ Certificate Trust List' do LocalComputer.

Então, mais uma vez estou parado. Eu não sei mais o que tentar. Alguém já obteve CTLs para trabalhar com IIS7 ou 7.5? Sempre? Estou batendo um cavalo morto? O Google só revela meus próprios posts e outras histórias semelhantes.

Atualização 2/23/10 - Confirmei com a Microsoft que esse é um bug com o IIS 7.5, mas funciona com o IIS 7. Confira este link para obter detalhes: link

Update 6/08/10 - Agora posso confirmar que o KB981506 resolve esse problema. Há um patch associado a este KB que deve ser aplicado às máquinas do Server 2008 R2 para habilitar essa funcionalidade. Uma vez instalado, tudo funciona perfeitamente para mim.

    
por BrettRobi 16.06.2009 / 17:35

3 respostas

1

Isso soa estranho, mas você não pode usar a interface do usuário do IIS 7.0 para criar uma Lista de Confiança de Certificados (CTL). Siga estas etapas para criar uma CTL com o IIS 7.0.

  1. Use o MakeCTL.exe para criar o CTL. Para obter mais informações sobre MakeCTL.exe, consulte a página MakeCTL no site do MSDN.

    A ferramenta MakeCTL.exe faz parte do .NET Framework SDK versão 1.1. Depois de instalar o SDK, MakeCTL.exe aparece no seguinte local:

\ Arquivos de programas \ Microsoft.NET \ SDK \ v1.1 \ Bin

  1. Depois de criar o CTL, você deve executar o AdsUtil.vbs para atribuir o identificador de CTL ao nome usado no MakeCTL.exe.

    adsutil.vbs define w3svc / 1 / SslCtlIdentifier

    onde é o nome amigável para o CTL usado em MakeCTL.exe.

  2. Execute adsUtil.vbs para definir o SslCtlStoreName.

adsutil.vbs define w3svc / 1 / SslCtlStoreName CA

  1. Depois de executar o AdsUtil.vbs, pare os serviços da Web usando o seguinte comando:

net stop HTTP / y

  1. Reinicie o serviço WS3SVC usando o seguinte comando:

net start W3SVC

    
por 16.06.2009 / 18:30
1

Você precisa instalar este hot fix da Microsoft

KB981506 - resolve este problema.

Desculpe, não vi o KB referenciado nas respostas até que eu postei isto

    
por 14.10.2010 / 18:09
0

Você garantiu que o CTL é criado no contexto da máquina? Por padrão, o SSL procurará no contexto da máquina e, se não for possível encontrá-lo, ocorrerá um erro (embora não tenha certeza se esse é o único).

    
por 15.07.2009 / 06:25