为什么要启用 HTTPS 服务?

  • 传统的 HTTP 协议传输的数据都是明文,不安全
  • 采用 HTTPS 协议对传输的数据进行了加密处理,可以防止数据被中间人窃取,使用更安全

申请 SSL 证书(https://freessl.org)

  • 进入 https://freessl.cn/ 官网,输入要申请的域名并选择品牌。
  • 输入自己的邮箱并选择相关选项。
  • 验证 DNS(在域名管理后台添加 TXT 记录)。
  • 验证通过之后,下载 SSL 证书( full_chain.pem 公钥;private.key 私钥)。

在后台项目中导入证书

Javascript

const https = require('https');
const fs = require('fs');
const options = {
	cert: fs.readFileSync('./full_chain.pem'),
	key: fs.readFileSync('./private.key')
}
https.createServer(options, app).listen(443);

此时 app.js 配置代码如下:

Javascript

const express = require('express')
// 导入包
const compression = require('compression')
const https = require('https')
const fs = require('fs')
// 创建 web 服务器
const app = express()

const options = {
	cert: fs.readFileSync('./full_chain.pem'),
	key: fs.readFileSync('./private.key')
}

// 启用中间件
app.use(compression());
// 托管静态资源
app.use(express.static('./dist'))


// 启动 web 服务器
// app.listen(80, () => {
//   console.log('web server running at http://127.0.0.1')
// })
https.createServer(options, app).listen(443);