Aperto de mão do Apache SSL lento

2

Estou executando um servidor Apache 2.4.18 executado no Ubuntu 16.04.1 LTS, somente com o PHP 7 e o Exim 4 instalados.

No início da manhã, o handshake SSL é extremamente rápido, cerca de 200ms, mas com o passar do tempo aumenta (cerca de 1 hora depois), ficando em torno dos 8s. Se eu reiniciar o Apache, o SSL será rápido novamente, mas depois de um tempo ele diminui a velocidade, retornando para 8s e às vezes até 30s.

Eu configurei o Apache ssh.conf (etc / apache2 / mods-enabled) da seguinte forma:

    SSLRandomSeed startup builtin
    SSLRandomSeed startup file:/dev/urandom 512
    SSLRandomSeed connect builtin
    SSLRandomSeed connect file:/dev/urandom 512

    AddType application/x-x509-ca-cert .crt
    AddType application/x-pkcs7-crl .crl

    SSLPassPhraseDialog  exec:/usr/share/apache2/ask-for-passphrase

    SSLSessionCache         shmcb:${APACHE_RUN_DIR}/ssl_scache(512000)
    SSLSessionCacheTimeout  300

    SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS

    SSLHonorCipherOrder on
    SSLProtocol all -SSLv3

    SSLCompression off
    SSLSessionTickets off

    SSLUseStapling on
    SSLStaplingResponderTimeout 5
    SSLStaplingReturnResponderErrors off
    SSLStaplingCache shmcb:/var/run/ocsp(128000)

Nas configurações do VirtualHost eu configurei o seguinte cabeçalho:

    Header always set Strict-Transport-Security "max-age=15768000"

A configuração do servidor é:

  • CPU: Intel Xeon E5-2650L 1,80 GHz (4 núcleos)
  • Memória: 7,8 GB
  • Média da carga: 0,50

Usando a ferramenta de status do servidor do Apache, isso aparece.

Quando o HTTPS é rápido (11:00 após a reinicialização do apache2): Status do cache de sessão SSL / TLS

Quando o HTTPS está lento: (11:04 AM): Status do cache de sessão SSL / TLS

Isso começou a acontecer quando migramos do servidor. Nenhum novo certificado foi solicitado, o antigo SSLCertificateFile, SSLCertificateChainFile e SSLCertificateKeyFile ainda são usados.

O que pode estar acontecendo para atrasá-lo e como posso corrigi-lo?

    
por Tom 01.12.2016 / 13:00

1 resposta

0

Se você estiver obtendo criptografia lenta, uma coisa que o artigo não mencionou é /dev/random vs /dev/urandom . O arquivo /dev/random pode bloquear a espera pela entropia e a criptografia mal escrita pode ser repetida várias vezes. Isso pode ser especialmente pronunciado em uma máquina virtual, já que eles não têm muito em termos de hardware gerador de entropia normal. Se isso acontecer com você, use apenas /dev/urandom .

Esta é uma daquelas coisas que provavelmente não estão afetando você, mas se for, pode ser um problema real e é difícil de diagnosticar sem saber para procurá-lo.

link

    
por 20.01.2017 / 20:56