我想通过https从网址获取文件,并收到以下错误:
错误:套接字挂断
有趣的是,通过浏览器访问此文件并使其卷曲,但不是通过node.js(request)和wget。
我调查了这个问题并发现了以下内容:
- 服务器的SSL证书由DigiCert颁发,并且包含通常不预装的链中的证书,即:DigiCert SHA2 High Assurance Server CA.链中的另一个证书是DigiCert High Assurance EV Root CA,应该没问题
- 服务器还支持有限数量的TLS协议。仅支持SSL3(支持不安全和TLS 1.0)
- 如上所述,我可以通过curl获取文件。当使用wget时,它只有在我明确设置SSL协议并提供ca证书链文件时才有效(wget --secure-protocol = TLSv1 --ca-certificate =" path / to / ca-chain-file.pem& #34; https://path/to/image.jpg)
醇>
现在我尝试完成两件事但失败了:
- 将ca-cert注册到我的操作系统(本地MAC,服务器在Ubuntu上运行)
-
在我的节点应用程序中发出GET请求时提供这些额外的配置:
request.get({
url: location,
encoding: 'base64',
agentOptions: {
ca: fs.readFileSync('path/to/ca-chain-file.pem'),
secureProtocol: 'TLSv1_method'
}
})
醇>
请帮忙