Node.js 节点Docker例程:tls_进程_ske_dhe:dh键太小

Node.js 节点Docker例程:tls_进程_ske_dhe:dh键太小,node.js,docker,Node.js,Docker,在过去的两天里,我一直在谷歌上搜索这个错误,但似乎没有任何解决方案能帮上忙 我已经构建了一个简单的NodeJS服务器,它使用axios进行外部API调用 const loadCerts() => { const sslDir: string = join(process.cwd(), 'ssl'); const certFilenames: string[] = readdirSync(sslDir).filter(filename => filename.endsW

在过去的两天里,我一直在谷歌上搜索这个错误,但似乎没有任何解决方案能帮上忙

我已经构建了一个简单的NodeJS服务器,它使用axios进行外部API调用

const loadCerts() => {
    const sslDir: string = join(process.cwd(), 'ssl');
    const certFilenames: string[] = readdirSync(sslDir).filter(filename => filename.endsWith('.cer'));
      
    console.log(`Loaded the following SSL certificates: ${certFilenames.join(', ')}`);
      
    return certFilenames.map(filename => readFileSync(`${sslDir}/${filename}`));
}

const httpAgent = new https.Agent({
    rejectUnauthorized: false,
    ca: loadCerts(),
})

const response = await axios.post(`https://api.company.com`, params, {
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    },
    httpsAgent: this.httpAgent
});
在本地进行测试时,一切正常。然而,当我将其部署为Docker映像时,我开始体验到一些奇怪的行为。然后我在本地测试了我的docker图像,同样的行为也发生了

我看到了这个模糊的错误:
Error:write-EPROTO 14060594637248:Error:141A318A:SSL例程:tls\u进程\u ske\u dhe:dh密钥太小:SSL/statem/statem\u clnt.c:2150:

错误本身并没有告诉我太多,谷歌搜索只给了我一些建议,比如升级我的节点版本(我使用的是v14)。我在本地机器和Docker映像中使用相同的节点版本

我怀疑这可能与Docker映像本身有关,我是否缺少一些依赖项

编辑:

在另一个Java项目中,我使用相同的API,Dockerfile中有这个额外的步骤,我猜我需要为我的节点Docker映像做一些类似的事情

运行sed-i's/DH-keySize<2048/DH-keySize<1024/g'/etc/crypto-policies/back-ends/java.config