Home  >  Article  >  Web Front-end  >  How to start https server in Node

How to start https server in Node

php中世界最好的语言
php中世界最好的语言Original
2018-03-19 14:42:492134browse

This time I will show you how to start the https server in Node. What are the precautions for starting the https server in Node? The following is a practical case, let's take a look.

First you need to generate an https certificate. You can buy it from a paid website or find some free websites. It may end with key or crt or pem. Different formats can be converted through OpenSSL, such as:

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

Node native version:

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 version

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 version

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}`)
})

I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the PHP Chinese website!

Recommended reading:

Detailed explanation of event model

How to use event loop

The above is the detailed content of How to start https server in Node. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn