Como você pode reiniciar o Apache normalmente sem desconectar as conexões SSL?

11

Estamos tentando recarregar o Apache normalmente usando um comando como:

apache2ctl -k graceful

Isso funciona conforme o esperado para usuários HTTP e a configuração do Apache é recarregada sem afetar os usuários do site.

No entanto, descobrimos que os usuários que acessam o servidor via HTTPS são desconectados durante uma recarga normal.

Como o Apache pode ser recarregado sem afetar as conexões SSL?

Caso isso ajude, estamos usando o HTTP 2 no Apache 2.4.20.

jones
fonte
5
Bem, você pode "recarregar" em vez de reiniciar o apache. Supondo que você execute coisas como a troca de chaves Diffie-Hellman, após uma reinicialização, as chaves usadas na "sessão" anterior não existirão mais, portanto novas serão criadas. Uma opção diferente seria colocar algum tipo de balanceador de carga que também processe ssl na frente de seus servidores apache.
Harrys Kavan
Sim, estamos recarregando (normalmente) em vez de reiniciar.
Jones
5
Terminar o SSL no HAProxy é uma opção para nós, se alguém puder confirmar que é uma solução viável?
Jones
2
Atualmente, é bastante comum ter um proxy ou balanceador de carga finalizando o ssl do usuário final. Então, para segurança máxima, você adicionará criptografia SSL "interna" entre o apache e os balanceadores de carga / proxy.
Harrys Kavan
5
Agora, confirmamos o bug como um problema com o módulo HTTP2 no Apache 2.4.10, esperando que isso possa ser corrigido upstream. Quando desativamos o HTTP2, o Apache pode ser recarregado sem desconectar os usuários SSL.
Jones19 /

Respostas:

1

Para garantir que as sessões HTTP baseadas em H2 sejam deixadas em paz (e não terminadas) durante a execução apachectl -k graceful, atualize seu software Apache para 2.4.24 e seu pacote mod_h2 para 1.4.7.

John Greene
fonte
Uma vez que tenhamos atualizado e tentado isso, apresentarei um relatório. Obrigado
jones