我不知道是否可以轻松地做到这一点,而且我还没有找到任何关于如何在本地以安全 (HTTPS) 方式运行 shieldsio 的文档。
我遵循了这个描述并且我已经成功地部署了一个工作服务器,但它只监听 HTTP。
我想也许我只需要一些小的重新配置就可以安全地工作,所以我所做的是修改 config/production.yaml
public:
bind:
address: '0.0.0.0'
port: 5443
ssl:
isSecure: true
key: 'https.key'
cert: 'https.crt'
我用来生成秘密的步骤是:
openssl genrsa -out https.key
openssl req -new -key https.key -out csr.pem
openssl x509 -req -days 9999 -in csr.pem -signkey https.key -out https.crt
rm csr.pem
重建 docker 映像并再次部署后,服务器开始侦听,但在第一次 HTTP GET 之后,我收到一个错误:
internal/buffer.js:958
super(bufferOrLength, byteOffset, length);
^
RangeError: Invalid typed array length: -4095
at new Uint8Array (<anonymous>)
at new FastBuffer (internal/buffer.js:958:5)
at Handle.onStreamRead [as onread] (internal/stream_base_commons.js:187:19)
at Stream.<anonymous> (/usr/src/app/node_modules/spdy/node_modules/handle-thing/lib/handle.js:120:12)
at Stream.emit (events.js:412:35)
at Stream.emit (domain.js:475:12)
at endReadableNT (/usr/src/app/node_modules/readable-stream/lib/_stream_readable.js:1010:12)
at processTicksAndRejections (internal/process/task_queues.js:82:21)
客户端 curl 命令返回:
curl -k https://127.0.0.1:5443
curl: (52) Empty reply from server
有没有人试图实现同样的目标并取得成功?也许我遗漏了一些明显的东西,我对nodejs不太熟悉。我很感激任何帮助。
谢谢, SilverTux