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.