如何修复使用node.js 17时Sandbox bluesnap不安全的旧版重新协商禁用错误



节点17(所有版本(返回以下错误:

https://sandbox.bluesnap.com/services/2/payment-fields-tokens失败,原因:写入EPROTO 00DE371301000000:错误:0A000152:SSL例程:final_recreache:不安全的旧版重新协商禁用

我在使用节点16时没有遇到同样的问题。

我试着设置

fetch( // node-fetch
'https://sandbox.bluesnap.com/services/2/payment-fields-tokens',
{
agent: new https.Agent({ // fix attempt
rejectUnauthorized: false,
}),
body, // defined somewhere else
}
);

我还在.env文件中设置了NODE_TLS_REJECT_UNAUTHORIZED=0

NODE_OPTIONS=--openssl-legacy-provider

也会出现同样的问题

我知道这可能是bluesnap的问题,但当他们解决问题时,一个变通方法会有所帮助,我可以继续使用最新的节点版本

Bluesnap API的新版本/端点可以使用最新版本的NodeJS。

https://sandpay.bluesnap.comhttps://pay.bluesnap.com

我相信如果您强制TLS版本为TLS1.3;安全重新协商";将不再是问题(TLSv1.3不支持它(。您可以通过在节点客户端中将maxVersion设置为"TLSv1.3"来实现这一点。这应该允许您使用支持TLS1.3 的ws.bluesnap.com域

如果您使用nvm,请尝试从根目录运行此命令:

nvm install --lts

相关内容

  • 没有找到相关文章

最新更新