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}`)
    })
    
    
  • 相关阅读:
    CF D. Ehab and the Expected XOR Problem 贪心+位运算
    luogu 1903 [国家集训队]数颜色 / 维护队列 带修改莫队
    Test 1 T2 B 线段树合并
    CF812C Sagheer and Nubian Market 二分+贪心
    CF804B Minimum number of steps
    CF796D Police Stations BFS+染色
    CF796C Bank Hacking 细节
    k8s节点NotReady问题处理
    Elastic-Job快速入门
    Elastic-Job介绍
  • 原文地址:https://www.cnblogs.com/rennaiqian/p/8594985.html
Copyright © 2011-2022 走看看