Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在容器中仅使用node.js使用TLS 1.2发送请求?_Node.js_Docker_Ssl_Https_Tls1.2 - Fatal编程技术网

如何在容器中仅使用node.js使用TLS 1.2发送请求?

如何在容器中仅使用node.js使用TLS 1.2发送请求?,node.js,docker,ssl,https,tls1.2,Node.js,Docker,Ssl,Https,Tls1.2,我试图使用容器中节点的内部HTTPS服务,并出现以下错误: #节点src/fetch.js 错误:write EPROTO 140284687652672:错误:1408F10B:SSL例程:ssl3_get_记录:错误的版本号:../deps/openssl/openssl/SSL/record/ssl3_记录。c:332: 在WriteWrap.onWriteComplete[作为oncomplete](internal/stream_base_commons.js:87:16){ errn

我试图使用容器中节点的内部HTTPS服务,并出现以下错误:

#节点src/fetch.js
错误:write EPROTO 140284687652672:错误:1408F10B:SSL例程:ssl3_get_记录:错误的版本号:../deps/openssl/openssl/SSL/record/ssl3_记录。c:332:
在WriteWrap.onWriteComplete[作为oncomplete](internal/stream_base_commons.js:87:16){
errno:‘EPROTO’,
代码:“EPROTO”,
系统调用:“写入”
}
但是如果我在容器外(在我的机器上)运行完全相同的代码,它就可以正常运行

我一直在谷歌上搜索解决方案,但我发现我一直在尝试使用HTTPS来使用HTTP和HTTP服务

另外,如果在容器中使用cURL运行相同的URL,则会出现以下结果:

#curlhttps://my-internal-secure-service.com/apitra/v1/health --冗长的
*正在尝试10.56.13.17。。。
*TCP_节点集
*已连接到my-internal-secure-service.com(10.56.13.17)端口443(#0)
*阿尔卑斯山,提供h2
*ALPN,提供http/1.1
*密码选择:全部:!出口:!出口40:!出口56:!阿努尔:!低:!RC4:@强度
*已成功设置证书验证位置:
*CAfile:/etc/ssl/certs/ca-certificates.crt
CApath:/etc/ssl/certs
*TLSv1.2(OUT)、TLS标头、证书状态(22):
*TLSv1.2(输出),TLS握手,客户端问候(1):
*错误:140770FC:SSL例程:SSL23\u获取\u服务器\u你好:未知协议
*Curl\u http\u done:调用premature==1
*停止暂停流!
*正在关闭连接0
curl:(35)错误:140770FC:SSL例程:SSL23\u GET\u SERVER\u HELLO:未知协议
与创建此服务的人员交谈时告诉我,该服务仅使用TLS1.2,但我不知道如何使用node指定此类参数

我找到了TLS的
secureProtocol
()选项,在使用值
TLSv1_2_方法尝试后,同样的事情发生了

有人知道这里发生了什么吗

以下是一些版本:

  • Docker版本:19.03.5,构建633a0ea
  • Docker compose:1.25.4,构建8d51620a
  • 码头工人形象:节点:12.14.1
  • 节点版本:12.14.1
  • 机器操作系统:macOS Catalina 10.15.3
以及nmap的一些结果:

  • 容器内:
#nmap--脚本ssl枚举密码-p 443 my-internal-secure-service.com
启动Nmap 7.40(https://nmap.org )美国标准时间2020-03-04 14:06
my-internal-secure-service.com的Nmap扫描报告(10.56.13.17)
主机已启动(0.00081s延迟)。
10.56.13.17的rDNS记录:mockservice.my-company.io
港口国服务
443/tcp开放https
Nmap完成:在88.22秒内扫描1个IP地址(1个主机启动)
  • 在我的机器里:
#nmap--脚本ssl枚举密码-p 443 my-internal-secure-service.com
启动Nmap 7.80(https://nmap.org )美国标准时间2020-03-04 14:07
my-internal-secure-service.com的Nmap扫描报告(10.56.13.17)
主机已启动(0.097s延迟)。
港口国服务
443/tcp开放https
|ssl枚举密码:
|TLSv1.2:
|密码:
|TLS_ECDHE_RSA_与_AES_256_GCM_SHA384(secp256r1)-A
|TLS_ECDHE_RSA_与_AES_128_GCM_SHA256(secp256r1)-A
|TLS_DHE_RSA_与_AES_256_GCM_SHA384(dh 2048)-A
|TLS_DHE_RSA_和_AES_128_GCM_SHA256(dh 2048)-A
|TLS_ECDHE_RSA_与_AES_256_CBC_SHA384(secp256r1)-A
|TLS_ECDHE_RSA_与_AES_256_CBC_SHA(secp256r1)-A
|TLS_DHE_RSA_与_AES_256_CBC_SHA256(dh 2048)-A
|TLS_DHE_RSA_与_AES_256_CBC_SHA(dh 2048)-A
|TLS_ECDHE_RSA_与_AES_128_CBC_SHA256(secp256r1)-A
|TLS_ECDHE_RSA_与_AES_128_CBC_SHA(secp256r1)-A
|TLS_DHE_RSA_与_AES_128_CBC_SHA256(dh 2048)-A
|TLS_DHE_RSA_与_AES_128_CBC_SHA(dh 2048)-A
|TLS_RSA_带AES_256_GCM_SHA384(RSA 2048)-A
|TLS_RSA_与_AES_128_GCM_SHA256(RSA 2048)-A
|TLS_RSA_与_AES_256_CBC_SHA256(RSA 2048)-A
|TLS_RSA_与_AES_256_CBC_SHA(RSA 2048)-A
|TLS_RSA_与_AES_128_CBC_SHA256(RSA 2048)-A
|TLS_RSA_与_AES_128_CBC_SHA(RSA 2048)-A
|压缩机:
|空的
|密码首选项:服务器
|_最小强度:A
Nmap完成:在3.07秒内扫描1个IP地址(1个主机启动)

另外,我不知道这是否重要,但我的机器(MacBook Pro)已连接到Mac Mini WiFi热点,Mac Mini通过以太网连接到公司网络。

如果他们只使用TLS1.2,那么如果使用
curl--tlsv1.2会发生什么https://my-internal-secure-service.com/apitra/v1/health --详细的
?当我切换WiFi网络(先切换到公共网络,然后切换到公司网络)时,我发现发生了一些非常奇怪的事情并使用cURL启动HTTP请求,无论是否使用
--tlsv1.2
,请求都可以正常工作,但一秒钟后,请求就会因上述错误而失败,连接到公司网络后的每个第一个请求都可以正常工作,正如我所说的,这是一个Mac迷你热点,奇怪。我试过使用WiFi热点,但现在使用Windows机器,效果很好,问题只发生在使用Mac迷你热点时,奇怪。如果他们只使用TLS1.2,那么如果使用
curl--tlsv1.2会发生什么https://my-internal-secure-service.com/apitra/v1/health --冗长的
?我发现发生了一些非常奇怪的事情,当我切换WiFi网络(先切换到公共网络,然后切换到公司网络)并使用cURL启动HTTP请求时,无论是否使用
--tlsv1.2
,请求都会正常工作,但一秒钟后,请求就会因上述错误而失败,连接到公司网络后的每个第一个请求都会如我所说的那样正常工作,这是一个Mac迷你热点,奇怪。我试过使用WiFi热点,但现在使用Windows机器,它就可以工作了,问题只发生在使用Mac迷你热点时,奇怪。