Ошибка подключения в AWS RDS SSL в NodeJS - PullRequest
1 голос
/ 02 февраля 2020

Я пытаюсь подключиться к RDS через Lambda NodeJS 12.x по SSL. Однако я получаю эти ошибки:

  Error: 4506652096:error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol:
  library: 'SSL routines',
  function: 'ssl_choose_client_version',
  reason: 'unsupported protocol',
  code: 'HANDSHAKE_SSL_ERROR' 

Я подключаюсь так:

const pool  = mysql.createPool({
  connectionLimit     : 10,
  host                : 'db.cqgcxllqwqnk.eu-central-1.rds.amazonaws.com',
  ssl                 : {
    ca                : fs.readFileSync(__dirname + '/rds-ca-2019-root.pem')
  },
  user                : ‘xxxxx’,
  password            : ‘xxxxxx’,
  database            : ‘xxxxxx’,
  multipleStatements  : true
});

Когда я подключаюсь с сертификатом через MySql Workbench, все работает просто отлично.

Есть идеи, как это решить?

Большое спасибо!

Ответы [ 2 ]

1 голос
/ 13 февраля 2020

Проблема связана с версией Mysql и версией TLS. Эта матрица показывает, что для MySQL 5.6 поддерживается только TLS 1.0. Node.js 12 по умолчанию использует TLS 1.2.

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL .Concepts.SSLSupport

0 голосов
/ 03 февраля 2020

Сделайте это перед подключением, так как у этого файла недостаточно прав для файла

sudo chmod 755 rds-combined-ca-bundle.pem   

Внимание: сохраните надежный пароль, этот пароль легко угадать

, если вы все еще найдете проблема, проверьте разрешение IAM для лямбды или проверьте, что и RDS и лямбда в одном VP C.

...