如何连接Heroku Redis TLS节点?

mik*_*see 6 heroku node.js heroku-redis

我似乎无法在 Node 上使用 TLS 连接到 Heroku Redis。

这些文档并没有多大帮助:https ://devcenter.heroku.com/articles/securing-heroku-redis

有人有一个有效的例子吗?我应该使用 REDIS_URL 还是 REDIS_TLS_URL?

我使用的是node_redis v3

Tom*_*lan 12

我发现 Heroku 的 Redis 6 插件Error: self signed certificate in certificate chain在 Node 上使用 ioredis 连接到没有任何参数的 REDIS_URL 时生成错误。rejectUnauthorized您可以通过传入设置为 的TLS 选项来避免此错误false

允许自签名证书,如果担心 MITM 攻击,这将是一个问题rejectUnauthorized。有关更多背景信息,false请参阅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);
Run Code Online (Sandbox Code Playgroud)