【问题标题】:NodeJS https server returning ERR_SSL_PROTOCOL_ERROR using expressNodeJS https服务器使用express返回ERR_SSL_PROTOCOL_ERROR
【发布时间】:2017-06-13 01:13:18
【问题描述】:

我试图让 SSL https 在我的 nodejs 服务器上运行,但浏览器返回 ERR_SSL_PROTOCOL_ERROR

代码:

var express = require('express');
var https = require('https');
var http = require('http');
var fs = require('fs');

var options = {
    key: fs.readFileSync('key.pem'),
    cert: fs.readFileSync('cert.pem')
}

http.createServer(app).listen(80);
https.createServer(options, app).listen(443);

【问题讨论】:

  • 应该可以https.createServer(sslOptions, app),验证您是否正确获取了证书。读取文件时可能需要添加 __dirname + 'key.pem'

标签: javascript node.js ssl https


【解决方案1】:

如果您的密钥生成不正确,就会发生这种情况。

很多地方都会告诉你这样做:

openssl genrsa -out key.pem

如果您使用的是 Mac,这将不起作用,您需要这样做以使密钥长度为 2048:

openssl genrsa -out key.pem 2048

总之,请按照以下步骤在 Mac 上制作正确的密钥:

openssl genrsa -out key.pem 2048
openssl req -new -key key.pem -out client.csr
openssl x509 -req -in client.csr -signkey key.pem -out cert.pem

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-27
    • 2016-12-08
    • 2020-12-28
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 1970-01-01
    相关资源
    最近更新 更多