Express JS,使用HTTPS不会加载页面

我想用https启动我的Web应用程序。 我用这个命令创build了自签名密钥和证书:

openssl req -newkey rsa:2048 -sha256 -nodes -keyout key.key -x509 -days 365 -out public.pem -subj "/C=US/ST=New York/L=Brooklyn/O=Example Brooklyn Company/CN=my.example.com" 

这为我创buildkey.key nad public.pem文件。

现在我想把它们分配给我的快速应用程序:

 const app = express(); const https = require('https'); const http = require('http'); const fs = require('fs'); app.get('/*', (req, res) => { res.send("Hello"); }); const options = { key: fs.readFileSync(`${__dirname}/key.key`), // Path to file with PEM private key cert: fs.readFileSync(`${__dirname}/public.pem`) // Path to file with PEM certificate }; https.createServer(options, app).listen(443); http.createServer(app).listen(80); 

当我打开我的my.example.com/它向我显示了“ Hello消息文本。 无论如何,当我打开它像这样https://my.example.com/我的浏览器不打开此页面,并显示ERR_SSL_PROTOCOL_ERROR错误消息。

我错过了什么?

尝试添加下面的代码,我认为你需要通过https打开

 var fs = require('fs'); var https = require('https'); var express = require('express'); var key = fs.readFileSync('sslcert/server.key', 'utf8'); var cert = fs.readFileSync('sslcert/server.crt', 'utf8'); var cred = {key: key, cert: cert}; var app = express(); var serv = https.createServer(cred, app); serv.listen(443); 

我希望这对你有用

可能你的SSL没有被正确地创build。

尝试:

 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 

我相信你的代码和逻辑没有错……如果你使用chrome作为浏览器,并且出现这种错误,可能是因为你正在使用一个自签名的证书…

在testing的情况下有一个方法…但我build议你购买一个SSL证书,如果你可以…