Certificados de cliente não funcionam com o IIS7

1

Estou tentando obter um serviço da Web que estamos criando para exigir certificados de clientes para conexões por várias semanas e não tenho tido muita sorte. Eu pensei que Eu tentaria criar um site simples que requer certificados de cliente para remover todo o código adicional de webservice da equação. Mesmo que todos os on-line tutoriais fizeram parecer que seria um processo muito mais fácil, eu ainda não tive sorte. Não tenho certeza se estou perdendo uma configuração no IIS ou algo simplesmente não é instalado.

O servidor é o Windows Server 2008 Web Edition. Minha caixa de cliente local é o Windows 7.

Eu detalhei cada passo que dei para criar este site de teste.

Primeiro, tive que criar meus certificados de teste. De um prompt de comando do Windows 7 SDK 7.1 na minha máquina local, eu executei estes comandos:

    makecert.exe -r -n "CN=My Personal CA" -pe -sv MyPersonalCA.pvk -a sha1 -len 2048 -cy authority MyPersonalCA.cer

    makecert.exe -iv MyPersonalCA.pvk -ic MyPersonalCA.cer -n "CN=John Doe" -pe -sv JohnDoe.pvk -a sha1 -len 2048 -sky exchange JohnDoe.cer -eku 1.3.6.1.5.5.7.3.2

    pvk2pfx.exe -pvk JohnDoe.pvk -spc JohnDoe.cer -pfx JohnDoe.pfx -po password

Após esses comandos, eu tive esses arquivos:

    MyPersonalCA.cer
    MyPersonalCA.pvk
    JohnDoe.cer
    JohnDoe.pfx
    JohnDoe.pvk

Em seguida, importei o seguinte para o IE na minha máquina local (Ferramentas- > Opções da Internet- > Conteúdo- > Certificados-Importação):     JohnDoe.pfx no armazenamento "Pessoal" (em "Avançado", certifique-se de que "Autenticação do Cliente" esteja selecionada)     MyPersonalCA.cer na loja "Authrorities de Certificação de Raiz Confiável"

No servidor, importei os certificados de acompanhamento usando o snap-in MMC Certificates:

    JohnDoe.cer into [Local Computer\Personal] and [Current User\Personal]
    MyPersonalCA.cer into [Local Computer\Trusted Root Certification Authorities] and
    [Current User\Trusted Root Certification Authorities]

Eu criei um aplicativo da Web VB.NET (VS2008) em branco e implantei-o no servidor. No IIS, atribuí esse aplicativo a um pool de aplicativos em execução como administrador para evitar quaisquer problemas de permissão (sim, eu vou corrigir isso mais tarde).

No IIS, altero as configurações de SSL do aplicativo da seguinte forma:

    Check "Require SSL"
    Under "Client Certificates", select "Require"

Eu também atribuí os erros 403.7 e 403.5 a páginas de erro personalizadas para que eu pudesse identificar qual erro 403 eu estava recebendo.

O IE deve solicitar a seleção de um certificado de cliente quando indo para a página. Desde versões mais recentes do IE não solicitar se não houver correspondência certificados, eu encontrei uma caixa velha com o IE6, e nessa caixa (com os certificados instalado) Eu recebo a caixa de diálogo Certificado de cliente, mas nenhum certificado é listado. IE10 na minha caixa de desenvolvedor nunca abre um prompt. Acabei de receber um 403.7 imediato

Alguém pode me dizer onde estou errado aqui? O IIS exige mais configuração para isso funcionar?

Ao enviar esta pergunta, me deparei com outro post falando sobre MakeCTL e netssh. A partir disso, descobri que, se eu corro:

    netssh http show sslcert

Eu recebo uma lista de configurações incluindo:

    Negotiate Client Certificate : Disabled

Isso precisa ser ativado? Se sim, como faço isso? O limitado instruções que eu consegui encontrar soar como eu precisaria excluir a ligação SSL e adicioná-lo novamente. Eu estou hesitante em brincar com isso desde o servidor está em uso.

    
por fulgore66 18.03.2013 / 16:08

1 resposta

0

Eu tive um erro semelhante em que um certificado de cliente autoassinado que eu adicionei às CAs raiz confiáveis da máquina local não estava sendo aceito. Resolvi aplicar a correção descrita aqui: link

Em suma, se houver muitos certificados na sua lista de autoridades de certificação raiz confiáveis, a lista de certificados de raiz aceitáveis apresentada ao responsável pela chamada será truncada. Se você não tiver sorte, o certificado raiz que você precisa não está incluso e o sistema concluirá que você não possui nenhum certificado aceitável. Você pode diagnosticar esse problema procurando avisos no log de eventos do sistema para seu servidor IIS gerado por "Schannel" com o código de evento 36885. A correção é excluir uma chave do Registro ... mais detalhes no link MS acima.

    
por 06.10.2016 / 03:04