NestJS で node-redis TLS 対応したサンプルコードをご紹介します。
 
今回は node-redis を利用して TLS 対応する方法を調べて、サンプルコードまで書きました。
Redis version 6 から SSL/TLS サポートが始まったようです。
TLS SupportSSL/TLS is supported by Redis starting with version 6 as an optional feature that needs to be enabled at compile time.
引用元: TLS Support – Redis
Property: tlsDefault: null
Description: An object containing options to pass to tls.connect to set up a TLS connection to Redis (if, for example, it is set up to be accessible via a tunnel).
localhost-key.pem, localhost.pem などの ローカル環境用 SSL/TLS サーバ証明書は mkcert で発行しました。
NestJS で redis.createClient() に tls オプションを指定して実行したサンプルコードは以下のとおりです。
import { createClient, RedisClient } from 'redis';
let redisClinet;
if (process.env.REDIS_TLS_URL) {
  redisClinet = createClient(process.env.REDIS_TLS_URL, {
    tls: {
      requestCert: true,
      rejectUnauthorized: false,
      cert: fs.readFileSync('/your_path/localhost.pem', 'utf8'),
      key: fs.readFileSync('/your_path/localhost-key.pem', 'utf8'),
    },
  });
} else {
  redisClinet = createClient({
    host: process.env.REDIS_HOST,
    port: parseInt(process.env.REDIS_PORT || '')
  });
}
以上、NestJS で node-redis TLS 対応のサンプルコードを書いてみた、現場からお送りしました。