使用Express搭建https服务器

2,415

准备工作

  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