Я запускаю стандартную установку Apache для debian squeeze (2.2) и использую SSLClientCertificates для авторизации пользователей. Пока это работает нормально.
Но мы заметили замедление некоторых параллельных запросов и попытались проверить, не SSLSessionCache
работает.
Итак, я проверил свой localhost / server-status, и он выглядит так:
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 для конфиденциальности)
Итак, вот мои вопросы:
Я не знаком с Debian Squeeze, но вот что можно попробовать:
Попробуйте подключиться с помощью openssl с reconnect
флаг, которые используют то же самое сеанс 5 раз:
openssl s_client -connect your.server.com:443 -state -reconnect
и посмотрите, что вы получите. Искать Session-ID
& "Использовано повторно".
Другие вещи, которые следует исключить:
${APACHE_RUN_DIR}
с фактическим путем и посмотрите, поможет ли это ...? ssl_*
файлы, которые вы отметили выше, пользователем, запускающим apache. Установка 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)
У меня аналогичная проблема.
Для меня при запуске данной команды. Я получаю сообщение об ошибке "неожиданное сообщение" при попытке повторного подключения.
Но при запуске на сервере эта команда работает правильно, сеансы используются повторно.
В то время у меня нет решения для этого