首先你需要生成https证书,可以去付费的网站购买或者找一些免费的网站,可能会是key或者crt或者pem结尾的。不同格式之间可以通过OpenSSL转换,如:
1
|
openssl x509 - in mycert.crt -out mycert.pem -outform PEM |
Node原生版本:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
const https = require( 'https' ) const path = require( 'path' ) const fs = require( 'fs' ) // 根据项目的路径导入生成的证书文件 const privateKey = fs.readFileSync(path. join (__dirname, './certificate/private.key' ), 'utf8' ) const certificate = fs.readFileSync(path. join (__dirname, './certificate/certificate.crt' ), 'utf8' ) const credentials = { key: privateKey, cert: certificate, } // 创建https服务器实例 const httpsServer = https.createServer(credentials, async (req, res) => { res.writeHead(200) res.end( 'Hello World!' ) }) // 设置https的访问端口号 const SSLPORT = 443 // 启动服务器,监听对应的端口 httpsServer.listen(SSLPORT, () => { console.log(`HTTPS Server is running on: https: //localhost :${SSLPORT}`) }) |
express版本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
const express = require( 'express' ) const path = require( 'path' ) const fs = require( 'fs' ) const https = require( 'https' ) // 根据项目的路径导入生成的证书文件 const privateKey = fs.readFileSync(path. join (__dirname, './certificate/private.key' ), 'utf8' ) const certificate = fs.readFileSync(path. join (__dirname, './certificate/certificate.crt' ), 'utf8' ) const credentials = { key: privateKey, cert: certificate, } // 创建express实例 const app = express() // 处理请求 app.get( '/' , async (req, res) => { res.status(200).send( 'Hello World!' ) }) // 创建https服务器实例 const httpsServer = https.createServer(credentials, app) // 设置https的访问端口号 const SSLPORT = 443 // 启动服务器,监听对应的端口 httpsServer.listen(SSLPORT, () => { console.log(`HTTPS Server is running on: https: //localhost :${SSLPORT}`) }) |
koa版本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
const koa = require( 'koa' ) const path = require( 'path' ) const fs = require( 'fs' ) const https = require( 'https' ) // 根据项目的路径导入生成的证书文件 const privateKey = fs.readFileSync(path. join (__dirname, './certificate/private.key' ), 'utf8' ) const certificate = fs.readFileSync(path. join (__dirname, './certificate/certificate.crt' ), 'utf8' ) const credentials = { key: privateKey, cert: certificate, } // 创建koa实例 const app = koa() // 处理请求 app.use(async ctx => { ctx.body = 'Hello World!' }) // 创建https服务器实例 const httpsServer = https.createServer(credentials, app.callback()) // 设置https的访问端口号 const SSLPORT = 443 // 启动服务器,监听对应的端口 httpsServer.listen(SSLPORT, () => { console.log(`HTTPS Server is running on: https: //localhost :${SSLPORT}`) }) |
总结
以上所述是小编给大家介绍的Node启动https服务器的教程,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
原文链接:https://www.cnblogs.com/rennaiqian/archive/2018/03/18/8594985.html