ssl-server
A Sumor Cloud Tool.
More Documentation
SSL Web Server with Express, Support HTTP/2
Installation
npm i @sumor/ssl-server --save
Prerequisites
Node.JS version
Require Node.JS version 18.x or above
require Node.JS ES module
As this package is written in ES module,
please change the following code in your package.json
file:
{
"type": "module"
}
Usage
Host a simple server
import createApp from '@sumor/ssl-server'
const app = createApp()
await app.listen()
console.log('Server running at https://localhost:443/')
Add SSL files
Please add SSL files into root folder ssl
with the following names:
domain.crt
domain.key
ca.crt
(Optional, It will append to the certificate chain)
If not found, the server will generate a self-signed certificate.
If SSL files changed, it will auto-reload.
Features
it supports all express features, only difference is the listen
and close
method. Please refer below example for more details.
Add middlewares and routes
import createApp from '@sumor/ssl-server'
const app = createApp()
import bodyParser from 'body-parser'
app.use(bodyParser.json())
app.get('/', (req, res) => {
res.send('Hello World!')
})
await app.listen()
Force close server
import createApp from '@sumor/ssl-server'
const app = createApp()
await app.listen()
await app.close()
Listen on custom port
import createApp from '@sumor/ssl-server'
const app = createApp()
await app.listen(8443, 8080)
console.log(`Server is running on https://localhost:8443/`)
console.log(`Redirect server is running on http://localhost:8080/`)
Listen only http
import createApp from '@sumor/ssl-server'
const app = createApp()
await app.listen(null, 8080)
console.log(`Redirect server is running on http://localhost:8080/`)
Use custom app
By default, ssl server will use latest express long term support version. You can use your own express app by passing it to createApp
function.
import createApp from '@sumor/ssl-server'
import express from 'express'
const expressApp = express()
expressApp.get('/', (req, res) => {
res.send('Hello World!')
})
const app = createApp(expressApp)
await app.listen()
console.log('Server running at https://localhost:443/')