Apache HTTP Fallback se o handshake SSL falhar

Apache HTTP Fallback se o handshake SSL falhar

eu tenho ummuitocaso de uso específico. Quero verificar, usando um Apache, se o navegador de um usuário é capaz de usar CipherSuites modernos.

O Apache é chamado com https e deve tentar estabelecer uma conexão SSL, se isso falhar o Apache deve redirecionar o usuário para um site HTTP substituto, onde ele será informado que seu navegador está desatualizado.

Claro que preciso usar o mod_rewrite, que ainda possui uma variável https que contém on/off, dependendo se o SSL estiver estabelecido. Mas como posso dizer ao Apache para continuar se o handshake SSL inicial falhar?

Responder1

o cliente deve tentar estabelecer uma conexão SSL; se isso falhar, o Apache deve redirecionar o usuário para um site HTTP substituto, onde ele será informado de que seu navegador está desatualizado.

Acho que não é possível, o handshake TLS falharia em um estágio bem antes do estágio em que o cliente e o servidor web podem trocar mensagens do protocolo HTTP.

Em vez de:

  1. Aceite todas as cifras.
  2. E ordene-os do forte ao fraco com oSSLCipherSuite ...diretiva.
  3. Não permita que o cliente determine a preferência da cifra, mas negocie-a na ordem de preferência que você determinou na etapa 2. com oSSLHonorCipherOrder on diretiva.
  4. Quedeveresultará em uma conexão com a cifra mais forte que o cliente suporta. (em teoria, sua quilometragem real pode variar.)
  5. Se essa cifra estiver abaixo do seu limite, aplique a lógica para mostrar sua mensagem de segurança.
  6. Proteja o conteúdo que realmente precisa de uma cifra forte comoexplicado no manual

ou seja, algo como:

# be liberal in general
SSLCipherSuite ALL:!aNULL:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP:+eNULL
SSLHonorCipherOrder on

<Location "/strong/area">
# but https://hostname/strong/area/ and below
# requires strong ciphers
SSLCipherSuite HIGH:!aNULL:!MD5
</Location>

informação relacionada