簡體   English   中英

在Node.js Express中運行https服務器時出現ERR_SSL_PROTOCOL_ERROR瀏覽器錯誤消息

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM