apache2 - SSLSessionCache em execução, mas não funcionando


8

Eu executo uma instalação padrão do Apache (2.2) do squeeze debian squeeze e uso SSLClientCertificates para autorizar usuários. Isso funciona bem até agora.

Mas notamos uma lentidão em alguns pedidos paralelos e tentamos verificar se o meu SSLSessionCacheestá funcionando.

Então, verifiquei meu localhost / server-status e ele fica assim:

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 em execução, mas qualquer solicitação de SSL que eu fizer, todos os contadores permanecerão em 0, portanto, nenhuma sessão será armazenada em cache.

Tentei definir KeepAlive Off, para permitir que cada solicitação estabelecesse uma nova conexão SSL, mas ainda não vejo números contando no meu SSLSessionCachestatus.

Esta é minha configuração SSLSessionCache do debian padrão mods-enabled/ssl.conf:

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

no meu ${APACHE_RUN_DIR}eu não vejo nenhum arquivo, nenhum ssl_mutex e nenhum arquivo ssl_cache. Quando mudo SSLSessionCachepara

SSLSessionCache         dbm:${APACHE_RUN_DIR}/ssl_scache

Eu posso ver um arquivo neste diretório, mas todos os números de status ainda são zero.

Eu tentei definir o LogLevel para depurar. As únicas mensagens que recebo sobre o cache SSL são:

$ 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

(data de remoção de um nível de log para facilitar a leitura e substituição do IP por privacidade)

Então, aqui estão as minhas questões:

  1. É correto não ter arquivos para mutex e sessionCache no diretório fornecido?
  2. Se sim, como provar que meu SessionCache está funcionando?

Respostas:


2

Eu não estou familiarizado com o Debian Squeeze, mas aqui estão algumas coisas para tentar:

Tente conectar-se usando o openssl com o reconnectsinalizador que usa a mesma sessão 5 vezes :

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

e veja o que você recebe. Procure por Session-ID"Reutilizado".

Outras coisas a serem descartadas:

  • Um tiro no escuro, mas você pode substituir ${APACHE_RUN_DIR}pelo caminho real e ver se isso ajuda ...?
  • Exclua as permissões de gravação (improvável, mas ainda) nos ssl_*arquivos que você anotou acima pelo usuário executando o apache.

Como observado, o apache grava um arquivo no diretório quando eu uso o dbm: como meu sessionCache. Portanto, $ {APACHE_RUN_DIR} e permissões de gravação não devem ser o problema. Eu não posso testá-lo com openssl como eu uso um pcks nº 11 de token para o meu certificado de cliente, não pode obtê-lo para trabalhar em linha de comando com openssl
Janning

Eu tenho o mesmo problema em uma máquina Windows. Eu tentei conectar via openssl como sugerido e realmente vejo que o mesmo Session-ID é usado para todas as reconexões. Ele também diz: "Reutilizado, TLSv1 / SSLv3" no início. No entanto, isso acontece mesmo quando eu removo a linha SSLSessionCache da minha configuração do apache. Alguma idéia do que isso significa?
Lex82

Já faz um ano, alguém encontrou uma solução para isso?
Codenamezero

0

Estou enfrentando um problema semelhante.

Para mim, ao executar o comando fornecido. Eu tenho um erro de "mensagem inesperada" quando ele tenta se reconectar.

Mas, ao executar no servidor, esse comando funciona corretamente, a sessão é reutilizada.

Na época, não tenho solução para isso


0

Montar tmpfs em / dev / shm e substituir $ {APACHE_RUN_DIR} por / dev / shm / apache para corrigi-lo:

grep shm /etc/apache2/mods-enabled/ssl.conf
#SSLSessionCache        shmcb:${APACHE_RUN_DIR}/ssl_scache(512000)
SSLSessionCache        shmcb:/dev/shm/apache_ssl_scache(512000)

isso também não funcionou para mim.
Codenamezero
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.