web-dev-qa-db-ja.com

apache2-SSLSessionCacheは実行中ですが機能していません

私はdebian squeeze標準の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のままなので、セッションはキャッシュされません。

すべてのリクエストで新しいSSL接続を確立できるようにKeepAlive Offを設定しようとしましたが、SSLSessionCacheステータスにカウントアップが表示されません。

これは、標準のdebian mods-enabled/ssl.confからのSSLSessionCache設定です。

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. 与えられたディレクトリにミューテックスとセッションキャッシュのファイルがないことは正しいですか?
  2. はいの場合、SessionCacheが機能していることをどのように証明しますか?
8
Janning

私はDebian Squeezeに精通していませんが、ここで試してみてください:

Opensslを使用して、同じ セッションを5回使用するreconnectフラグで接続してみてください

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

あなたが得るものを見てください。 Session-IDと「再利用」を探します。

除外すべき他の事柄:

  • 暗闇の中でのショットですが、${Apache_RUN_DIR}を実際のパスに置き換えて、それが役立つかどうかを確認できますか?
  • Apacheを実行しているユーザーによる、上記のssl_*ファイルへの書き込み権限(そうではないが、それでも)を除外します。
2
KM.

同様の問題に直面しています。

与えられたコマンドを実行するときの私にとって。再接続しようとすると、「予期しないメッセージ」エラーが発生します。

ただし、サーバーで実行すると、このコマンドは正しく機能し、セッションは再利用されます。

当時、私にはこれに対する解決策がありません

0
benzen

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)
0
meebey