• Node启动https服务器


    首先你需要生成https证书,可以去付费的网站购买或者找一些免费的网站,可能会是key或者crt或者pem结尾的。不同格式之间可以通过OpenSSL转换,如:

    openssl x509 -in mycert.crt -out mycert.pem -outform PEM
    

    Node原生版本:

    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版本

    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版本

    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}`)
    })
    
    
  • 相关阅读:
    sort-list leetcode C++
    sum-root-to-leaf-numbers leetcode C++
    sum-root-to-leaf-numbers leetcode C++
    path-sum-ii leetcode C++
    path-sum-ii leetcode C++
    0139 函数的两种声明方式
    0138 函数可以调用另外一个函数
    0137 函数案例:数组翻转、冒泡排序、判断闰年
    0136 JavaScript中 arguments 的使用
    0135 函数的返回值:return 语句、终止函数 、只能返回一个值、没有 return 返回 undefined、break &continue&return 的区别
  • 原文地址:https://www.cnblogs.com/rennaiqian/p/8594985.html
Copyright © 2020-2023  润新知