복붙노트

[REDIS] 이외의 클라이언트에서-교통 암호화 + 인증과 AWS ElastiCache에 연결 레디 스 - CLI +되는 Stunnel

REDIS

이외의 클라이언트에서-교통 암호화 + 인증과 AWS ElastiCache에 연결 레디 스 - CLI +되는 Stunnel

나는 루비 레디 스 클라이언트를 사용하기 위해 노력하고있어 및 두 개의 NodeJS 클라이언트 (node_redis 또는 ioredis) 중 하나 인 교통 암호화 및 인증과 아마존 ElastiCache 클러스터에 연결 가능하고 문제가 있어요. 세 가지 클라이언트의 경우, 최대한 빨리 연결로 나는 연결 시도가 발생하면 즉시 다시 및 반복 던져진 ECONNRESET의 오류가 발생합니다.

나는 AWS의 문서를 다음 성공적되는 Stunnel을 사용하여 레디 스-CLI를 통해 연결할 수,하지만 지금까지 다른 클라이언트와 연결하지 못하고있다.

이 SO 대답보고에서, 거기에 필요하지 인증서가없는 우리는 단순히 TLS의 설정 (해당되는 경우)에 빈 옵션을 전달해야합니다,하지만 난을 입력 상관없이이 실패 해요 나타납니다. 나는 또한 단지의 경우 모든 클라이언트의 인증서로 기본 stunnel로 stunnel.pem 개인 키를 전달하려고했습니다, 그것은 분명히 중 하나가 작동하지 않습니다. ElastiCache 사용하고 다른 사람들로부터 어떤 지원이나 전문 지식이 도움이 될 것입니다!

해결법

  1. ==============================

    1.두 클라이언트의 기본 TLS 동작은 우리가 비활성화하는 데 필요한 서버 인증서를 확인하는 것입니다. 다음과 같이 두 클라이언트에 대한 솔루션입니다 :

    두 클라이언트의 기본 TLS 동작은 우리가 비활성화하는 데 필요한 서버 인증서를 확인하는 것입니다. 다음과 같이 두 클라이언트에 대한 솔루션입니다 :

    NodeJS 클라이언트 :

    const redis = require('redis')
    const client = redis.createClient({host: hostOrIp, port: 6379, auth_pass: 'thePassword', tls: { checkServerIdentity: () => undefined }})
    

    루비 클라이언트 :

    require "redis"
    redis = Redis.new(url: connectionString, ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE })
    
  2. ==============================

    2.나는 비슷한 문제로 실행, 대신 ECONNRESET I의 타임 아웃을 얻고 있었다. 나를 위해, 밖으로 다림질 할 수 있다고 몇 가지 문제가 있었다

    나는 비슷한 문제로 실행, 대신 ECONNRESET I의 타임 아웃을 얻고 있었다. 나를 위해, 밖으로 다림질 할 수 있다고 몇 가지 문제가 있었다

    그것은 SSL = True로 설정 될 필요가 있다는 의미가 있지만 연결은 그냥 사용 권한 / VPC / SG 설정의 문제가 무엇인지 알아 내려고 빙글 빙글 갔다 있도록 시간 초과했다.

  3. from https://stackoverflow.com/questions/51660056/connect-to-aws-elasticache-with-in-transit-encryption-auth-from-client-other-t by cc-by-sa and MIT license