0

我们正在使用节点 v6.11.2 和使用 mysql2 实用程序/模块的池连接下面是代码片段。

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();
        });
    }  

我们想使用 ssl 加密进行连接,我在下面尝试过,但没有成功。

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')
    }
}

错误:

{"name":"searchmember-api","hostname":"lba-ovn-1664.loyalty.com","pid":13728,"level":40,"msg":"获取连接时出错:错误:140086462822176:错误:1409441B:SSL 例程:ssl3_read_bytes:tlsv1 警报解密错误:../deps/openssl/openssl/ssl/s3_pkt.c:1494:SSL 警报号 51\n140086462822176:错误:140940E5:SSL 例程:ssl3_read_bytes :ssl 握手失败:../deps/openssl/openssl/ssl/s3_pkt.c:1217:\n\n 错误(本机)","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} { "名称":"searchmember-api","主机名":"lba-ovn-1664.loyalty.com","pid":13728,"level":50,"msg":"获取 db 连接时发生错误:cpm 错误:错误:140086462822176:error:1409441B:SSL 例程:ssl3_read_bytes:tlsv1 警报解密错误:../ deps/openssl/openssl/ssl/s3_pkt.c:1494:SSL 警报号 51\n140086462822176:error:140940E5:SSL 例程:ssl3_read_bytes:ssl 握手失败:../deps/openssl/openssl/ssl/s3_pkt.c:1217 :\n\n 在错误(本机)","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.忠诚度.com","pid":13728,"level":50,"msg":"错误:140086462822176:错误:1409441B:SSL 例程:ssl3_read_bytes:tlsv1 警报解密错误:../deps/openssl/openssl/ssl/s3_pkt.c:1494:SSL 警报号 51\n140086462822176:错误:140940E5:SSL 例程:ssl3_read_bytes:ssl 握手失败:../deps/openssl/openssl/ssl/s3_pkt.c:1217:\n\n 错误(本机)","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}06:31.503Z","src":{"file":"/data/celo/servers/searchmember-api/node_modules/searchmember-api/app/controllers/SearchMemberController.js","line":26}," v":0}06:31.503Z","src":{"file":"/data/celo/servers/searchmember-api/node_modules/searchmember-api/app/controllers/SearchMemberController.js","line":26}," v":0}

4

1 回答 1

0

最后通过点击找到解决方案并尝试:

 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'))
        }
    }
于 2021-02-02T06:44:55.220 回答