1

we are using node v6.11.2 and pooling connection using mysql2 utility/module Below is the snippet .

const mysql = require('mysql2');
const cpmPoolConfig = {
    connectionLimit: config.get('mysql_cpm.connectionLimit'),
    host: config.get('mysql_cpm.host'),
    port: config.get('mysql_cpm.port'),
    user: config.get('mysql_cpm.user'),
    password: config.get('mysql_cpm.password'),
    database: config.get('mysql_cpm.database'),
    debug: config.get('mysql_cpm.debug'),
}
const poolCpm = mysql.createPool(cpmPoolConfig);
 var getConnectionCpm = function () {
        return getConnectionWithRetry(poolCpm).disposer(function (connection) {
            serverLOG.debug('Releasing db connection.');
            connection.release();
        });
    }  

We want to connect using ssl encryption,I tried below but did not work.

const fs = require('fs');    
const cpmPoolConfig = {
    connectionLimit: config.get('mysql_cpm.connectionLimit'),
    host: config.get('mysql_cpm.host'),
    port: config.get('mysql_cpm.port'),
    user: config.get('mysql_cpm.user'),
    password: encryptionUtil.decrypt(config.get('mysql_cpm.password')),
    database: config.get('mysql_cpm.database'),
    debug: config.get('mysql_cpm.debug'),
    ssl: {
        ca: fs.readFileSync('/data/celo/dbcerts/ca.pem'),
        cert: fs.readFileSync('/data/celo/dbcerts/client-cert.pem'),
        key: fs.readFileSync('/data/celo/dbcerts/client-key.pem')
    }
}

Error:

{"name":"searchmember-api","hostname":"lba-ovn-1664.loyalty.com","pid":13728,"level":40,"msg":"Error occurred when getting connection: Error: 140086462822176:error:1409441B:SSL routines:ssl3_read_bytes:tlsv1 alert decrypt error:../deps/openssl/openssl/ssl/s3_pkt.c:1494:SSL alert number 51\n140086462822176:error:140940E5:SSL routines:ssl3_read_bytes:ssl handshake failure:../deps/openssl/openssl/ssl/s3_pkt.c:1217:\n\n at Error (native)","time":"2020-12-23T23:06:31.501Z","src":{"file":"/data/celo/servers/searchmember-api/node_modules/searchmember-api/app/helpers/DbUtils.js","line":111},"v":0} {"name":"searchmember-api","hostname":"lba-ovn-1664.loyalty.com","pid":13728,"level":50,"msg":"Error occurred while getting a db connection for : cpm Error: Error: 140086462822176:error:1409441B:SSL routines:ssl3_read_bytes:tlsv1 alert decrypt error:../deps/openssl/openssl/ssl/s3_pkt.c:1494:SSL alert number 51\n140086462822176:error:140940E5:SSL routines:ssl3_read_bytes:ssl handshake failure:../deps/openssl/openssl/ssl/s3_pkt.c:1217:\n\n at Error (native)","time":"2020-12-23T23:06:31.502Z","src":{"file":"/data/celo/servers/searchmember-api/node_modules/searchmember-api/app/helpers/DbUtils.js","line":76},"v":0} {"name":"searchmember-api","hostname":"lba-ovn-1664.loyalty.com","pid":13728,"level":50,"msg":"Error: 140086462822176:error:1409441B:SSL routines:ssl3_read_bytes:tlsv1 alert decrypt error:../deps/openssl/openssl/ssl/s3_pkt.c:1494:SSL alert number 51\n140086462822176:error:140940E5:SSL routines:ssl3_read_bytes:ssl handshake failure:../deps/openssl/openssl/ssl/s3_pkt.c:1217:\n\n at Error (native)","time":"2020-12-23T23:06:31.503Z","src":{"file":"/data/celo/servers/searchmember-api/node_modules/searchmember-api/app/controllers/SearchMemberController.js","line":26},"v":0}

shekhar
  • 21
  • 1

1 Answers1

0

Finally found solution by hit and try :

 ssl: config.get('mysql_ssl.required'),
 dialectOptions: {
        ssl: {
            ssl: config.get('mysql_ssl.required'),
            ca: fs.readFileSync(config.get('mysql_ssl.caPath')),
            cert: fs.readFileSync(config.get('mysql_ssl.certPath')),
            key: fs.readFileSync(config.get('mysql_ssl.keyPath'))
        }
    }
shekhar
  • 21
  • 1