É possível configurar o cabeçalho HTTP da versão SSL / TLS com o Apache que um aplicativo de backend pode usar?

2

Existe um serviço em uma máquina virtual com um IP dedicado que precisa ser acessível via SSLv3 (clientes WinXP com IE6). Mudei esse serviço vários anos atrás para uma máquina virtual para poder desabilitar o SSLv3 para todos os outros serviços.

Gostaria de notificar os clientes SSLv3 para esse serviço que este serviço exigirá o TLS 1.1 ou superior em "algum tempo". Essa notificação não deve ser mostrada em nenhum outro cliente (decisão comercial).

Para conseguir isso, eu estava pensando em injetar as informações de versão SSL / TLS usadas nos proxies (Apache) na solicitação HTTP original para permitir que o aplicativo de backend estabelecesse condicionalmente que "atualize seu sistema, dinossauro!" notificação baseada no método de segurança usado na camada de transporte.

Como configuro a injeção? Eu encontrei as variáveis de ambiente necessárias somente quando o Apache é compilado com sinalizadores de depuração, mas isso não é possível na produção.

O resultado final deve ser que o Apache Proxy está injetando o cabeçalho de solicitação HTTP "X-TLS-Version: SSL3" (ou "X-TLS-Version: TLS12" ou sintaxe familiar).

    
por burnersk 14.11.2014 / 12:49

2 respostas

3

O mod_ssl do Apache faz um número de variáveis de ambiente disponíveis quando o SSLOptions a diretiva +StdEnvVars está ativada, o que inclui o protocolo SSL:

SSL_PROTOCOL string The SSL protocol version (SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2)

Que você pode usar como uma condição para definir um header quando o SSLv3 é usado:

SSLOptions +StdEnvVars    
SetEnvIf SSL_PROTOCOL "SSLv3" insecure-protocol=true
RequestHeader set X-TLS-Version "SSLv3" env=insecure-protocol 

Para definir sempre um cabeçalho com o protocolo SSL, o seguinte pode funcionar:

RequestHeader set X-TLS-Version %{SSL_PROTOCOL}s  

que tem uma pequena vantagem que, para um cenário simples, você não precisa incorrer na sobrecarga de SSLOptions +StdEnvVars , mas pode acessar certas variáveis SSL diretamente com a sintaxe %{FOOBAR}s .

nenhum dos dois foi testado.

    
por 14.11.2014 / 16:16
1

Defina SSLOptions +StdEnvVars e uma variedade de variáveis de ambiente relacionadas a SSL / TLS . conjunto. (E você pode encontrar este valor já definido em sua configuração do servidor web, como é em algumas configurações de amostra.)

A variável de ambiente que seu aplicativo deseja inspecionar será SSL_PROTOCOL .

E você tem todas as nossas condolências por não poder remover o IE6 e o XP do seu ambiente no prazo.

    
por 14.11.2014 / 16:13