apache2 - SSLSessionCache en cours d'exécution mais ne fonctionne pas

8

J'exécute une installation standard Apache Debian Squeeze (2.2) et utilise SSLClientCertificates pour autoriser les utilisateurs. Cela fonctionne bien jusqu'à présent.

Mais nous avons remarqué un ralentissement de certaines demandes parallèles et essayé de vérifier si mon SSLSessionCachefonctionne.

J'ai donc vérifié mon état localhost / server-status et il se lit comme suit:

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

Semble être en cours d'exécution, mais quelle que soit la demande SSL que je fasse, tous les compteurs restent à 0, donc aucune session n'est mise en cache.

J'ai essayé de définir KeepAlive Off, de laisser chaque demande établir une nouvelle connexion SSL, mais je ne vois toujours aucun nombre compter dans mon SSLSessionCacheétat.

Voici ma configuration SSLSessionCache de Debian standard mods-enabled/ssl.conf:

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

dans mon ${APACHE_RUN_DIR}je ne vois aucun fichier, aucun ssl_mutex et aucun fichier ssl_cache. Quand je passe SSLSessionCacheà

SSLSessionCache         dbm:${APACHE_RUN_DIR}/ssl_scache

Je peux voir un fichier dans ce répertoire, mais tous les numéros d'état sont toujours nuls.

J'ai essayé de définir LogLevel pour déboguer. Les seuls messages que je reçois sur le cache ssl sont:

$ 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

(date supprimée un niveau de log pour la lisibilité, IP remplacé pour la confidentialité)

Donc, voici mes questions:

  1. Est-il correct de n'avoir aucun fichier pour mutex et sessionCache dans le répertoire donné?
  2. Si oui, comment prouver que ma SessionCache fonctionne?
Janning
la source

Réponses:

2

Je ne connais pas Debian Squeeze, mais voici quelques choses à essayer:

Essayez de vous connecter en utilisant openssl avec le reconnectdrapeau qui utilise la même session 5 fois :

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

et voyez ce que vous obtenez. Recherchez Session-ID& "Réutilisé".

Autres choses à exclure:

  • Un coup dans le noir, mais pouvez-vous le remplacer ${APACHE_RUN_DIR}par le chemin réel et voir si cela aide ...?
  • Exclure les autorisations d'écriture (peu probables, mais toujours) pour les ssl_*fichiers que vous notez ci-dessus par l'utilisateur exécutant apache.
KM.
la source
Comme indiqué, apache écrit un fichier dans le répertoire lorsque j'utilise dbm: comme sessionCache. Donc $ {APACHE_RUN_DIR} et les permissions d'écriture ne devraient pas être le problème. Je ne peux pas le tester avec openssl car j'utilise un jeton pcks # 11 pour mon certificat client, je ne peux pas le faire fonctionner en ligne de commande avec openssl
Janning
J'ai le même problème sur une machine Windows. J'ai essayé de me connecter via openssl comme suggéré et je vois en fait que le même ID de session est utilisé pour toutes les reconnexions. Il dit également: "Réutilisé, TLSv1 / SSLv3" au début. Cependant, cela se produit même lorsque je supprime la ligne SSLSessionCache de ma configuration apache. Des idées ce que cela signifie?
lex82
Cela fait un an, quelqu'un a trouvé une solution à cela?
codenamezero
0

Je fais face à un problème similaire.

Pour moi lors de l'exécution de la commande donnée. J'ai une erreur de "message inattendu" lors de la tentative de reconnexion.

Mais lors de l'exécution sur le serveur, cette commande fonctionne correctement, les sessions sont réutilisées.

A l'époque, je n'ai pas de solution pour ça

benzen
la source
0

Monter les tmpfs sur / dev / shm et remplacer $ {APACHE_RUN_DIR} par / dev / shm / apache en le corrige pour moi:

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
la source
cela n'a pas fonctionné pour moi non plus.
codenamezero