Como simular a conexão com HTTPS e registrar o handshake?

2

Eu tenho um farm de servidores web do IIS 6 que hospedam um site em HTTP e HTTPS. Com o Safari 4 em um Mac, conectando via HTTPS, alguns nós no farm acionam o navegador para gerar um erro de certificado para o usuário, os outros nós funcionam bem. Sempre os mesmos nós causam o problema, mas o problema parece não ocorrer no IE ou no Chrome.

Suponho que esses nós no farm estejam configurados incorretamente, mas não consigo identificar facilmente o problema ao examinar as configurações de servidor individuais. Eu gostaria de apontar uma ferramenta do lado do cliente em um nó bom conhecido e capturar o cliente e servidor SSL hello, a mensagem de certificado, a troca de chaves, etc da perspectiva do cliente, sem criptografia e depois repetir em um nó de problema conhecido e depois compare.

Você pode sugerir alguma ferramenta do Windows para isso, ou talvez uma maneira melhor de diagnosticar a falha?

    
por Jason Stangroome 15.07.2009 / 09:09

4 respostas

5

Eu sempre usei o s_client do OpenSSL . Não vejo por que a versão do Win32 não deve funcionar da mesma forma.

Você pode usar o seguinte comando para ser muito detalhado sobre o handshake SSL:

openssl s_client -debug -msg -state -status -showcerts -connect <host>:443

Você pode excluir alguns dos argumentos se quiser menos tagarelas.

Você também pode especificar -CAfile com sua única CA de assinatura.

    
por 15.07.2009 / 10:01
2

O artigo Os primeiros poucos milissegundos de uma conexão HTTPS explica o que você está procurando?

    
por 15.07.2009 / 09:41
1

Dê uma olhada no fiddler2 - link

"O Fiddler é um Proxy de Depuração da Web que registra todo o tráfego HTTP (S) entre seu computador e a Internet. O Fiddler permite inspecionar todo o tráfego HTTP (S), definir pontos de interrupção e" mexer "com dados recebidos ou enviados. O Fiddler inclui um poderoso subsistema de scripts baseado em eventos e pode ser estendido usando qualquer linguagem .NET. "

O Fiddler é uma ótima ferramenta de depuração da web de propósito geral. Agora, para seus propósitos, você pode combinar os conselhos de David em termos de conexão com cada um dos servidores individualmente, com a capacidade de rastrear a partir do Fiddler o que está acontecendo. É obviamente fundamental saber em qual servidor você está se conectando para poder identificar exatamente onde está o problema

    
por 15.07.2009 / 09:57
0

Como o farm é configurado? Se você puder ver cada nó do farm (ou seja, se estiver na mesma rede diretamente ou via VPN, ou se eles tiverem endereços IP voltados para o público), você não conseguirá se conectar a cada um deles e verificar quais estão com problemas de certificado?

Para cada nó:

  • completamente feche o navegador (caso ele tenha armazenado em cache o endereço IP associado ao nome, pois estamos prestes a alterar essa associação localmente na próxima etapa)
  • associe seu endereço direto ao (sub) nome de domínio que você espera estar no certificado adicionando uma entrada em seu arquivo de hosts (c: \ windows \ system32 \ drivers \ etc \ hosts na maioria das configurações do Windows)
  • abra seu navegador e acesse o site
por 15.07.2009 / 09:48