我尝试在我的nodejs服务器上运行SSL https,但浏览器返回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);
答案 0 :(得分:3)
如果您的密钥生成不正确,就会发生这种情况。
很多地方会告诉你这样做:
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