nodejs12如何在代码内设置tls协议版本
 发布于 6 年前  作者 gxsandzxl  9645 次预览  最后一次回复是 6 年前  来自 问答 

在nodejs v12版本中发送http请求时遇到如下错误:

Error: Error: write EPROTO 18548:error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol:c:\ws\deps\openssl\openssl\ssl\statem\statem_lib.c:1922:

–tls-v1.0 flag doesn’t work on Node v12 经查询是nodejs 12默认不支持tls v1.0版本的协议,可以通过添加 --tls-min-v1.0 参数支持1.0的tls。 但由于开发过程需要用到supervisor模块,恰巧supervisor没有支持这个参数。

想请问各位,能否在代码内使http支持v1.0的tls协议,或者有无支持 --tls-min-v1.0 参数的热部署模块。

7 回复
zuohuadong

如果必须使用,就使用 nginx 或者 caddy 反向代理吧。 tls 1.0 已经不够安全了。

yuu2lee4

记得 supervisor 之类的 可传参

gxsandzxl

@yuu2lee4 这个模块好几年没更新了,没有支持这个参数

gxsandzxl

@zuohuadong 请问有没有更简便的方案呢?

zuohuadong

@gxsandzxl 反向代理就是最简单的~ 不建议用 tls 1.0 不安全。,

atian25

https://nodejs.org/dist/latest-v12.x/docs/api/cli.html#cli_environment_variables 通过环境变量可以传参给 node。但还是强烈建议用 nginx

wangkunmeng

require(‘tls’).DEFAULT_MIN_VERSION = ‘TLSv1’;