我有一个简单的链设置,可以在这种情况下成功验证:
$ openssl version
OpenSSL 1.0.2m 2 Nov 2017
$ openssl verify -CAfile chain.pem cert.pem
cert.pem: OK
Run Code Online (Sandbox Code Playgroud)
但是我在这些情况下遇到错误:
$ openssl verify -CAfile ca-cert.pem cert.pem
cert.pem: C = US...
error 2 at 1 depth lookup:unable to get issuer certificate
Run Code Online (Sandbox Code Playgroud)
特别是无法获得颁发者证书.
也来这里:
$ openssl verify chain.pem
chain.pem: C = US...
error 20 at 0 depth lookup:unable to get local issuer certificate
$ openssl verify cert.pem
cert.pem: C...
error 20 at 0 depth lookup:unable to get local issuer certificate
Run Code Online (Sandbox Code Playgroud)
最后,当我将密钥传递给HTTPS服务器时,我在Node.js中得到它:
events.js:193 …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现一个每 500 毫秒发送大量数据(对象,而不是文件)的服务器。经过一番阅读后,服务器通过 http2 发送的事件似乎是最快的选择(因为 http2 是二进制协议并且 SSE 减少了流量开销)
在 http/1.1 上玩了一下SSE之后,我一直在尝试在 http2 上做同样的事情。我尝试使用stream和pushStream来做到这一点,但没有成功。然而,使用与 http/1.1 相同的方式似乎是可行的。
我的问题是 - 为什么使用流的服务器 1(见下文)不起作用,而服务器 2 似乎工作正常?工作节点流时我是否遗漏了一些东西?
我正在使用节点v10.9.0和铬68.0.3440.106
我已阅读以下问题和帖子,但仍然无法解决此问题:
服务器 1 - 带流的 http2(不工作 - 客户端没有收到事件。chrome 将请求描述为未完成的请求):
const fs = require('fs');
const http2 = require('http2');
const HTTPSoptions = {
key: fs.readFileSync('./cert/selfsigned.key'),
cert: fs.readFileSync('./cert/selfsigned.crt'),
};
const template = ` …Run Code Online (Sandbox Code Playgroud)