zoukankan      html  css  js  c++  java
  • 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}`)
    })
    
    
  • 相关阅读:
    python 多核并行计算 示例3,使用 管道 Pipe(仅仅作为记录)
    python 多核并行计算 示例2,使用manager 进行进程共享(仅仅作为记录)
    python 多核并行计算 示例1(工作太忙,仅仅作为记录)
    python多线程示例3,加锁(仅仅作为记录)
    python多线程示例2,加锁(仅仅作为记录)
    python多线程示例1(工作太忙,仅仅作为记录)
    C中字符串分割函数strtok的一个坑(转)
    外扩闪存Quad-SPIFlash(转)
    ARM交叉编译器_说明(转)
    echarts-柱状图-圆柱
  • 原文地址:https://www.cnblogs.com/rennaiqian/p/8594985.html
Copyright © 2011-2022 走看看