[英]NodeJS https server returning ERR_SSL_PROTOCOL_ERROR using express
[英]ERR_SSL_PROTOCOL_ERROR browser error message while running a https server in nodejs express
我使用下面的代碼在Express上運行了許多nodejs應用程序。 使用類似於以下內容的代碼,它們都可以正常運行:
fs = require 'fs'
https = require 'https'
express = require 'express'
server_port = 3000
keys_dir = 'keys/' server_options = {
key : fs.readFileSync(keys_dir + 'privatekey.pem'),
cert : fs.readFileSync(keys_dir + 'certificate.pem') } app = express.createServer(server_options)
app.listen server_port
console.log "HTTPS Server started on port #{server_port}"
但是,當嘗試使用此代碼創建新應用程序時,在啟動https服務器時看到ERR_SSL_PROTOCOL_ERROR。 知道是什么引起了這個問題嗎?
我發現這是由於從Express 2.5.8遷移到Express 3-特別是3.0.0beta4而引起的。 創建新項目時,從npm提取的版本已更改為版本3系列。 即使在運行express --version
時模塊被標記為“ beta”,該版本仍是運行npm install express
時現在安裝的版本。 此處概述了更改的詳細信息。
為了解決這個問題,我使用了以下代碼:
const fs = require("fs");
const https = require("https");
const express = require("express");
const keysDir = "keys/";
const options = {
key : fs.readFileSync(keysDir + "privatekey.pem"),
ca : fs.readFileSync(keysDir + "certrequest.csr"),
cert : fs.readFileSync(keysDir + "certificate.pem")
};
const app = express();
https.createServer(options, app).listen(3000);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.