¿Cómo puede reiniciar Apache con gracia sin desconectar las conexiones SSL?

11

Estamos intentando recargar Apache con gracia usando un comando como:

apache2ctl -k graceful

Esto funciona como se espera para los usuarios de HTTP y la configuración de Apache se vuelve a cargar sin afectar a los usuarios del sitio web.

Sin embargo, hemos descubierto que los usuarios que acceden al servidor a través de HTTPS se desconectan durante una recarga correcta.

¿Cómo se puede recargar Apache con gracia sin afectar las conexiones SSL?

En caso de que ayude, estamos usando HTTP 2 en Apache 2.4.20.

jones
fuente
55
Bueno, podrías "recargar" en lugar de reiniciar Apache. Suponiendo que ejecuta cosas como el intercambio de claves Diffie-Hellman, después de un reinicio, las claves utilizadas en la "sesión" anterior ya no existirán, por lo que se están creando otras nuevas. Una opción diferente sería poner algún tipo de equilibrador de carga que también maneje ssl frente a sus servidores apache.
Harrys Kavan
Sí, estamos recargando (agraciado) en lugar de reiniciar.
jones
55
Terminar SSL en HAProxy es una opción para nosotros, si alguien puede confirmar que es una solución viable.
jones
2
Es bastante común hoy en día tener un proxy o un equilibrador de carga que finalice el SSL del usuario final. Luego, para obtener la máxima seguridad, agregará cifrado SSL "interno" entre el apache y los proxy / cargadores de carga.
Harrys Kavan
55
Ahora hemos confirmado el error como un problema con el módulo HTTP2 en Apache 2.4.10, con la esperanza de que se pueda solucionar en sentido ascendente. Cuando apagamos HTTP2, Apache se puede volver a cargar sin desconectar a los usuarios de SSL.
jones

Respuestas:

1

Para garantizar que las sesiones HTTP basadas en H2 se dejen solas (y no se terminen) al ejecutar apachectl -k graceful, actualice su software Apache a 2.4.24 y su paquete mod_h2 a 1.4.7.

John Greene
fuente
Una vez que hayamos actualizado e intentado esto, informaré de nuevo. Gracias
jones