端くれプログラマの備忘録 Laravel [Laravel] Redis接続のTLSのバージョンの確認法

[Laravel] Redis接続のTLSのバージョンの確認法

LaravelでPredisモジュールを使用してRedisサーバーにTLS接続している場合、接続に使用されているTLSのバージョンを直接取得する方法は標準的には提供されていません。ただし、以下の手順でTLSバージョンを確認することができます。

方法1: ネットワークキャプチャツールの使用

ネットワークキャプチャツールを使用して、Redisクライアントとサーバー間の通信をキャプチャし、TLSハンドシェイクの詳細を確認する方法が最も確実です。

  1. Wiresharkのインストール: Wiresharkをインストールします。
  2. 通信のキャプチャ: Wiresharkを起動し、Redisクライアントとサーバー間の通信をキャプチャします。具体的には、Redisサーバーのホスト名またはIPアドレスに対する通信をフィルタリングします。
  3. TLSハンドシェイクの確認: キャプチャしたパケットの中から、TLSハンドシェイクのパケットを確認し、使用されているTLSバージョンを特定します。

方法2: Redisサーバーのログを確認

Redisサーバーの設定で詳細なログを有効にしている場合、TLS接続に関する情報が記録されていることがあります。Redisサーバーのログファイルを確認し、TLSバージョンが記録されているかを確認します。

方法3: Predisクライアントのデバッグログを有効にする

Predisクライアントのデバッグログを有効にすることで、接続時の詳細な情報を取得できる場合があります。ただし、Predisのデフォルト設定ではTLSバージョンがログに記録されることは少ないです。この方法を試す場合、Laravelのlogging設定を変更して、Predisのログを詳細に記録するように設定する必要があります。

Laravelのlogging設定を変更

Laravelのconfig/logging.phpファイルで、デバッグログを有効にします。

'channels' => [
    'stack' => [
        'driver' => 'stack',
        'channels' => ['daily', 'single'],
    ],
    'daily' => [
        'driver' => 'daily',
        'path' => storage_path('logs/laravel.log'),
        'level' => 'debug',
        'days' => 14,
    ],
    'single' => [
        'driver' => 'single',
        'path' => storage_path('logs/laravel.log'),
        'level' => 'debug',
    ],
],

その後、Predisクライアントの接続設定を確認し、詳細なログが出力されるようにします。

方法4: Redisサーバーの設定確認

Redisサーバーの設定ファイル(通常はredis.conf)を確認し、TLSに関連する設定をチェックします。特に、tls-protocolsオプションが設定されている場合、許可されているTLSバージョンがわかりますが、実際にどのバージョンで接続されているかは直接確認できません。

まとめ

上記の方法のうち、ネットワークキャプチャツールを使用する方法が最も確実に使用されているTLSバージョンを確認できます。Wiresharkなどのツールを使って、接続時のTLSハンドシェイクをキャプチャし、詳細を確認してみてください。