apache2 - SSLSessionCache работает, но не работает


8

Я запускаю стандартную установку Apache Debian (2.2) и использую SSLClientCertificates для авторизации пользователей. Это работает отлично до сих пор.

Но мы заметили замедление некоторых параллельных запросов и попытались проверить, работает ли my SSLSessionCache.

Итак, я проверил свой локальный / серверный статус, и он выглядит так:

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

Кажется, что работает, но независимо от того, какой SSL-запрос я делаю, все счетчики остаются равными 0, поэтому сессии не кэшируются.

Я пытался установить KeepAlive Off, чтобы каждый запрос устанавливал новое соединение SSL, но все же я не вижу никаких цифр в моем SSLSessionCacheстатусе.

Это моя Конфигурация SSLSessionCache из стандартного Debian mods-enabled/ssl.conf:

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

в моем ${APACHE_RUN_DIR}я не вижу файлов вообще, ни ssl_mutex, ни файла ssl_cache. Когда я переключаю SSLSessionCacheна

SSLSessionCache         dbm:${APACHE_RUN_DIR}/ssl_scache

Я вижу файл в этом каталоге, но все номера статуса по-прежнему равны нулю.

Я попытался настроить LogLevel для отладки. Единственные сообщения, которые я получаю о кеше ssl:

$ 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

(убрал дату, уровень лога для удобства чтения, заменил IP для конфиденциальности)

Итак, вот мои вопросы:

  1. Правильно ли в данном каталоге нет файлов для мьютекса и sessionCache?
  2. Если да, как доказать, что мой SessionCache работает?

Ответы:


2

Я не знаком с Debian Squeeze, но вот кое-что попробовать:

Попробуйте подключиться с помощью openssl с reconnectфлагом, который использует один и тот же сеанс 5 раз :

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

и посмотрим, что вы получите. Ищите Session-ID& "Повторно использованный."

Другие вещи, чтобы исключить:

  • Выстрел в темноте, но можете ли вы заменить ${APACHE_RUN_DIR}реальный путь и посмотреть, поможет ли это ...?
  • Исключите права на запись (маловероятно, но все же) в ssl_*файлы, которые вы заметили выше, пользователем, работающим с Apache.

Как отмечалось, apache записывает файл в каталог, когда я использую dbm: в качестве sessionCache. Так что $ {APACHE_RUN_DIR} и права на запись не должны быть проблемой. Я не могу проверить это с openssl, так как я использую токен pcks # 11 для моего сертификата клиента, не могу заставить его работать в командной строке с openssl
Janning

У меня та же проблема на машине с Windows. Я попытался соединиться через openssl как предложено, и я фактически вижу, что тот же Session-ID используется для всех повторных соединений. В начале также написано: «Повторно, TLSv1 / SSLv3». Однако это даже происходит, когда я удаляю строку SSLSessionCache из моей конфигурации apache. Есть идеи, что это значит?
lex82

Прошел год, кто-нибудь нашел решение этой проблемы?
codenamezero

0

Я сталкиваюсь с подобной проблемой.

Для меня при запуске данной команды. При попытке переподключения появляется ошибка «неожиданное сообщение».

Но при запуске на сервере эта команда работает правильно, сеанс используется повторно.

В то время у меня нет решения для этого


0

Монтирование tmpfs в / dev / shm и замена $ {APACHE_RUN_DIR} на / dev / shm / apache исправили это для меня:

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

это не сработало для меня тоже.
codenamezero
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.