SSL Web Server with Express, Support HTTP/2
npm i @sumor/ssl-server --save
Require Node.JS version 16.x or above
As this package is written in ES module,
please change the following code in your package.json
file:
{
"type": "module"
}
import createApp from '@sumor/ssl-server'
const app = createApp()
// listen on port 443 by default, and redirect 80 to https 443
await app.listen()
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.
it supports all express features, only difference is the listen
and close
method. Please refer below example for more details.
import createApp from '@sumor/ssl-server'
const app = createApp()
import bodyParser from 'body-parser'
// you can add any express middleware
app.use(bodyParser.json())
// add routes
app.get('/', (req, res) => {
res.send('Hello World!')
})
// listen is async function
await app.listen()
import createApp from '@sumor/ssl-server'
const app = createApp()
// listen is async function
await app.listen()
// close is async function
await app.close()
import createApp from '@sumor/ssl-server'
const app = createApp()
// listen is async function
await app.listen(8443, 8080)
console.log(`Server is running on https://localhost:8443/`)
console.log(`Redirect server is running on http://localhost:8080/`)