3

ノードで TLS を使用して Heroku Redis に接続できないようです。

これらのドキュメントはあまり役に立ちません: https://devcenter.heroku.com/articles/securing-heroku-redis

誰かが実用的な例を持っていますか? REDIS_URL または REDIS_TLS_URL を使用する必要がありますか?

node_redis v3を使用しています

4

3 に答える 3

6

Heroku の Redis 6 アドオンが、Error: self signed certificate in certificate chainNode.js で ioredis を使用してパラメーターなしで REDIS_URL に接続すると、エラーが発生することがわかりました。このエラーは、TLS オプションをrejectUnauthorizedset to に渡すことで回避できますfalse

rejectUnauthorizedfalse自己署名証明書を許可しますが、これは MITM 攻撃が懸念される場合に問題になります。背景については、 TLS オプションを参照してください。

これはioredis、rediss:// と redis:// の URL を含む最新のパッケージで機能しています...

  const REDIS_URL = process.env.REDIS_URL;
  const redis_uri = url.parse(REDIS_URL);
  const redisOptions = REDIS_URL.includes("rediss://")
    ? {
        port: Number(redis_uri.port),
        host: redis_uri.hostname,
        password: redis_uri.auth.split(":")[1],
        db: 0,
        tls: {
          rejectUnauthorized: false,
        },
      }
    : REDIS_URL;
  const redis = new Redis(redisOptions);
于 2021-01-04T13:42:19.730 に答える