Como forçar todas as conexões do Apache a usar TLSv1.1 ou TLSv1.2

3

Eu não consegui encontrar uma solução para isso, se houver, por favor, refira-se a ela.

Em exibição:

  • Windows7 x64
  • Apache 2.4.4
  • OpenSSL 1.0.1j

e tenho o seguinte no meu link

SSLStrictSNIVHostCheck off  
SSLProtocol All -SSLv2 -SSLV3  
SSLCompression off  
SSLInsecureRenegotiation off  
SSLHonorCipherOrder on  

SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 
EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !aNULL !eNULL 
!LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"

SSLUseStapling on  
SSLStaplingResponderTimeout 5  
SSLStaplingReturnResponderErrors off  

Pergunta:

O que eu faço, parece que não consigo ativar o TLSv1.1 & TLSv1.2.
Ran um script ServerSSLTest e tudo que eu recebo é versões suportadas: TLSv1.0

O que estou perdendo?

    
por deltaRoot 22.10.2014 / 01:55

3 respostas

5

Primeiramente, você precisa ter TLSv1.1 & Suporte V1.2 no OpenSSL - com a sua v1.0.1j, você faz.

Em seguida, há suporte ao Apache V2.2.24 (ou posterior) para itens de configuração relacionados ao SSL. Em particular, para especificar algo posterior a TLS1 (ou seja, TLSv1.1, TLSv1.2), você precisa dessa versão posterior. Você tem 2.4.4, então isso deve ficar bem.

Em seguida, existe uma "interação" entre os parâmetros de configuração do Apache: SSLProtocol e SSLCipherSuite .

Portanto, para a sua configuração desejada, TLSv1.1 & TLSv1.2, você precisaria de algo como:

SSLProtocol=All -SSLv2 -SSLV3 -TLSv1
SSLCipherSuite HIGH:!aNULL:!MD5:!RC4

Aprecio que você tenha uma lista de conjuntos de criptografia mais específica:

EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4

No entanto, quando eu verifiquei com o meu openssl (fluxo v1.0.1) eu encontrei o seguinte pré-TLSv1.2 suites foram suportados:

 openssl ciphers -s -v 'EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4'

ECDHE-RSA-AES256-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA1
ECDHE-ECDSA-AES256-SHA  SSLv3 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA1
ECDHE-RSA-AES128-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA1
ECDHE-ECDSA-AES128-SHA  SSLv3 Kx=ECDH     Au=ECDSA Enc=AES(128)  Mac=SHA1
DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
DHE-RSA-CAMELLIA256-SHA SSLv3 Kx=DH       Au=RSA  Enc=Camellia(256) Mac=SHA1
DHE-RSA-AES128-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1
DHE-RSA-SEED-SHA        SSLv3 Kx=DH       Au=RSA  Enc=SEED(128) Mac=SHA1
DHE-RSA-CAMELLIA128-SHA SSLv3 Kx=DH       Au=RSA  Enc=Camellia(128) Mac=SHA1

Então, verificando aqui (seção A.5), link , eu não acho que nenhuma das suítes compatíveis listadas por my openssl são realmente TLSv1.1 válido, então você só terminaria com TLSv1.2, quando testado (por exemplo, na Qualys link ).

Por último, há toda a questão do suporte ao cliente - o link Qualys acima é útil, pois lista qual tipo de cliente (até versões específicas do Android, por exemplo) seria capaz de se conectar ao servidor de teste enviado). Como você é bastante cifrado, eu acho que você não vai arriscar muito, permitindo TLSv1 (para o qual leia v1.0), bem como V1.1 & V1.2, a menos que você saiba que sua base de visitantes não incluirá clientes com capacidade apenas de TLSv1.

    
por 23.04.2015 / 14:26
1

Para gerar automaticamente um arquivo ssl-config automaticamente, o Mozilla possui um gerador de ssl-config:

link

Isto fornecerá um modelo para um servidor Apache 2.4 com a versão openssl 1.0.1e.

Espero que isso ajude alguém novo na configuração ssl.

    
por 19.09.2017 / 16:04
0

Tente remover SSLCipherSuite e altere a linha SSLProtocol para:

SSLProtocol -All +TLSv1.1 +TLSv1.2

O SSLCipherSuite irá, eu acredito, substituir o SSLProtocol no caso em que ele segue no arquivo de configuração.

    
por 22.10.2014 / 02:24