CNode

nodejs12如何在代码内设置tls协议版本

问答
Ggxsandzxl发布于7 年前最后回复7 年前7 回复9891 浏览0 收藏

在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)

W
wangkunmeng#1·7 年前

require('tls').DEFAULT_MIN_VERSION = 'TLSv1';

Z
zuohuadong#2·7 年前

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

Y
yuu2lee4#3·7 年前

记得 supervisor 之类的 可传参

G
gxsandzxl#4·7 年前
引用 yuu2lee4记得 supervisor 之类的 可传参

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

Z
zuohuadong#6·7 年前
引用 gxsandzxl@zuohuadong 请问有没有更简便的方案呢?

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

A
atian25#7·7 年前

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

参与回复
登录后即可参与回复。登录