使用Express搭建https伺服器

葛志剛發表於2018-02-07

準備工作

  1. 申請https免費證照(本文以阿里雲域名為例

    • 登入阿里雲控制中心點選-> 產品與服務 -> CA證照服務
    • 點選右上角購買證照按鈕
    • 進入購買證照頁面(預設不會出現免費的證照選項),點選Symantec -> 增強型OV SSL -> 免費型DV SSL -> 立即購買(¥0.00)
      此處輸入圖片的描述
    • 檢視證照列表點選補全按鈕填寫域名資訊與個人資訊後提交稽核。稽核時間一般不會太長。
      此處輸入圖片的描述
    • 點選下載 -> 其他 -> 下載證照
      此處輸入圖片的描述
  2. 安裝NodeJS

    • 安裝NodeJS 下載地址
    • 安裝Express npm install -g express express-generator

配置Express

  • 開啟命令列輸入 express projectName 生成Express專案模版 (projectName = 你的專案名稱)
  • cd projectName & npm install 模組安裝成功
  • 執行 npm run start 此時你的Express伺服器已經起來了,開啟瀏覽器輸入 http://yuming:3000
  • 不過它還不是基於https的 ,下面我們將exprss的配置進行改造 開啟bin目錄下的www檔案
#!/usr/bin/env node

/**
 * Module dependencies.
 */

var app = require('../app');
var debug = require('debug')('small:server');
//直接引入https模組
var https = require('https');
var fs = require('fs');
//如果想使用socket可以參考下
var Wss = require('../routes/wss.js');

/**
 * Get port from environment and store in Express.
 */
//將預設置成  https的預設埠 443   http預設埠80
var port = normalizePort(process.env.PORT || '443');
app.set('port', port);
//此處讀取檔名稱更改成自己下載的證照名稱, 將證照放置到對應的目錄下
var pk = fs.readFileSync('./214392241880080.key');
var pc = fs.readFileSync('./214392241880080.pem');
var opt = {
  key: pk,
  cert: pc
}
/**
 * Create HTTP server.
 */
//啟動https服務
var server = https.createServer(opt ,app);
//初始化socket
Wss.initServer(server);

/**
 * Listen on provided port, on all network interfaces.
 */

server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
複製程式碼
  • 重執行 npm run start 開啟瀏覽器輸入 https://yuming

相關文章