apache2-SSLSessionCache가 실행 중이지만 작동하지 않음


8

데비안 스퀴즈 표준 Apache 설치 (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 구성입니다 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

이 디렉토리에서 파일을 볼 수 있지만 모든 상태 번호는 여전히 0입니다.

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. 주어진 디렉토리에 mutex와 sessionCache 파일이없는 것이 맞습니까?
  2. 그렇다면 SessionCache가 작동하고 있음을 증명하는 방법은 무엇입니까?

답변:


2

데비안 스퀴즈에 익숙하지 않지만 다음과 같이 시도해보십시오.

reconnect동일한 세션을 5 번 사용하는 플래그로 openssl을 사용하여 연결하십시오 .

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

그리고 당신이 무엇을 얻을 참조하십시오. Session-ID& "재사용"을 찾으십시오 .

배제 할 다른 것들 :

  • 어둠 속에서 촬영했지만 ${APACHE_RUN_DIR}실제 경로로 교체 하여 도움이되는지 확인할 수 있습니까?
  • ssl_*아파치를 실행하는 사용자가 위에서 언급 한 파일 에 대한 쓰기 권한을 제외 하십시오.

언급했듯이 아파치는 dbm :을 내 sessionCache로 사용할 때 파일을 디렉토리에 씁니다. 따라서 $ {APACHE_RUN_DIR} 및 쓰기 권한은 문제가되지 않았습니다. 클라이언트 인증서에 pcks # 11 토큰을 사용하므로 openssl로 테스트 할 수 없습니다. openssl을 사용하여 명령 줄에서 작동시킬 수 없습니다
Janning

Windows 컴퓨터에서 동일한 문제가 있습니다. 제안한대로 openssl을 통해 연결을 시도했지만 실제로 모든 다시 연결에 동일한 Session-ID가 사용되는 것을 볼 수 있습니다. 또한 처음에는 "재사용, TLSv1 / SSLv3"이라고 표시되어 있습니다. 그러나 이것은 아파치 구성에서 SSLSessionCache 줄을 제거 할 때도 발생합니다. 이것이 의미하는 아이디어가 있습니까?
lex82

1 년이 지났는데, 이것에 대한 해결책을 찾았습니까?
codenamezero

0

비슷한 문제에 직면하고 있습니다.

주어진 명령을 실행할 때 나를 위해. 다시 연결하려고하면 "예기치 않은 메시지"오류가 발생합니다.

그러나 서버에서이 명령을 실행하면 세션이 재사용됩니다.

당시에는 이것에 대한 해결책이 없습니다.


0

/ dev / shm에 tmpfs를 마운트하고 $ {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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.