节点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