3

ノードjsアプリケーションをTLSで保護されたredisサーバーに接続するために、ioRedisノードパッケージを使用しています。私が使用しているRedisのバージョンはRedis 6.0です。サーバーは証明書を使用して正常に動作していますが、ノード アプリケーションからの接続中にエラーが発生します。

 Redis({
          host: "localhost",
          port: 6379,
          tls: {
            key: fs.readFileSync('./redis.key'),
            cert: fs.readFileSync('./redis.crt'),
            maxVersion: 'TLSv1.3',
            minVersion: 'TLSv1.3',
            ca: [fs.readFileSync('./redis.pem')]
          }
        })

nodejsアプリ側のエラーは

This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
   Error: read ECONNRESET
            at TCP.onStreamRead (internal/stream_base_commons.js:205:27)

nodejs アプリケーションから接続しようとしているときにサーバーでエラーが発生しました

17:29:44.295 # Error accepting a client connection: error:1408F10B:SSL routines:ssl3_get_record:wrong version number

目的は、TLS セキュリティとの redis 接続を確立することです。

4

2 に答える 2

6

私も同じことをしていて、このアプローチを試みています。

const redis = require('redis');
const fs = require('fs');

const client = redis.createClient({
    host: '<hostname>',
    port: <port>,
    tls: {}
});

証明書キーを渡す代わりに、すべてがtlsを空のオブジェクトとして渡そうとします。このアプローチのガイドは次のとおりです。 https://docs.upstash.com/docs/howto/connectwithtls

于 2021-03-26T03:56:38.160 に答える