apache2 - SSLSessionCache ejecutándose pero no funciona

8

Ejecuto una instalación de Apache estándar de Debian Squeeze (2.2) y utilizo SSLClientCertificates para autorizar a los usuarios. Esto funciona bien hasta ahora.

Pero notamos una desaceleración de algunas solicitudes paralelas e intentamos verificar si mi SSLSessionCachefunciona.

Así que verifiqué mi localhost / server-status y se lee así:

SSL/TLS Session Cache Status:
cache type: SHMCB, shared memory: 512000 bytes, current sessions: 0
subcaches: 32, indexes per subcache: 133
index usage: 0%, cache usage: 0%
total sessions stored since starting: 0
total sessions expired since starting: 0
total (pre-expiry) sessions scrolled out of the cache: 0
total retrieves since starting: 0 hit, 0 miss
total removes since starting: 0 hit, 0 miss

Parece estar ejecutándose, pero cualquier solicitud SSL que haga, todos los contadores permanecen en 0, por lo que no se almacenan en caché las sesiones.

Traté de configurar KeepAlive Off, para permitir que cada solicitud establezca una nueva conexión SSL, pero aún no veo ningún número contando en mi SSLSessionCacheestado.

Esta es mi configuración SSLSessionCache de debian estándar mods-enabled/ssl.conf:

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

en mi ${APACHE_RUN_DIR}no veo ningún archivo, ni ssl_mutex ni ningún archivo ssl_cache. Cuando cambio mi SSLSessionCachea

SSLSessionCache         dbm:${APACHE_RUN_DIR}/ssl_scache

Puedo ver un archivo en este directorio, pero todos los números de estado siguen siendo cero.

Traté de configurar LogLevel para depurar. Los únicos mensajes que recibo sobre el caché SSL son:

$ grep cache /var/log/apache2/error.log

ssl_scache_shmcb.c(253): shmcb_init allocated 512000 bytes of shared memory
ssl_scache_shmcb.c(272): for 511920 bytes (512000 including header), recommending 32 subcaches, 133 indexes each
ssl_scache_shmcb.c(306): shmcb_init_memory choices follow
ssl_scache_shmcb.c(308): subcache_num = 32
ssl_scache_shmcb.c(310): subcache_size = 15992
ssl_scache_shmcb.c(312): subcache_data_offset = 3208
ssl_scache_shmcb.c(314): subcache_data_size = 12784
ssl_scache_shmcb.c(316): index_num = 133
Shared memory session cache initialised
ssl_scache_shmcb.c(452): [client xyz] inside shmcb_status
ssl_scache_shmcb.c(512): [client xyz] leaving shmcb_status

(fecha eliminada un nivel de registro para facilitar la lectura, IP reemplazada por privacidad)

Asi que aqui están mis preguntas:

  1. ¿Es correcto no tener archivos para mutex y sessionCache en el directorio dado?
  2. En caso afirmativo, ¿cómo probar que mi SessionCache está funcionando?
Janning
fuente

Respuestas:

2

No estoy familiarizado con Debian Squeeze, pero aquí hay algunas cosas para probar:

Intente conectarse usando openssl con la reconnectbandera que usa la misma sesión 5 veces :

openssl s_client -connect your.server.com:443 -state  -reconnect

y mira lo que obtienes. Busque Session-IDy "Reutilizado".

Otras cosas a descartar:

  • Un tiro en la oscuridad, pero ¿puedes reemplazarlo ${APACHE_RUN_DIR}con el camino real y ver si eso ayuda ...?
  • Descarte los permisos de escritura (poco probable, pero aún así) a los ssl_*archivos que anotó anteriormente por el usuario que ejecuta Apache
KM.
fuente
Como se señaló, apache escribe un archivo en el directorio cuando uso dbm: como mi sessionCache. Entonces $ {APACHE_RUN_DIR} y permisos de escritura no deberían ser el problema. No puedo probarlo con openssl ya que uso un token pcks # 11 para mi certificado de cliente, no puedo hacer que funcione en la línea de comandos con openssl
Janning
Tengo el mismo problema en una máquina con Windows. Traté de conectarme a través de openssl como se sugirió y en realidad veo que se usa la misma ID de sesión para todas las reconexiones. También dice: "Reutilizado, TLSv1 / SSLv3" al principio. Sin embargo, esto incluso sucede cuando elimino la línea SSLSessionCache de mi configuración de apache. ¿Alguna idea de lo que esto significa?
lex82
Hace un año, ¿alguien encontró una solución para esto?
codenamezero
0

Estoy enfrentando un problema similar.

Para mí cuando ejecuta el comando dado. Tengo un error de "mensaje inesperado" cuando intenta reconectarse.

Pero cuando se ejecuta en el servidor este comando funciona correctamente, las sesiones se reutilizan.

En ese momento, no tengo solución para esto

benzen
fuente
0

Montar tmpfs en / dev / shm y reemplazar $ {APACHE_RUN_DIR} con / dev / shm / apache en arreglarlo para mí:

grep shm /etc/apache2/mods-enabled/ssl.conf
#SSLSessionCache        shmcb:${APACHE_RUN_DIR}/ssl_scache(512000)
SSLSessionCache        shmcb:/dev/shm/apache_ssl_scache(512000)
meebey
fuente
eso tampoco funcionó para mí.
codenamezero