ssl-server

Una herramienta de Sumor Cloud.
Más documentación

Servidor Web SSL con Express, compatible con HTTP/2

CI Prueba Cobertura Auditoría

Instalación

npm i @sumor/ssl-server --save

Prerrequisitos

Versión de Node.JS

Requiere Node.JS versión 18.x o superior

Requiere módulo ES de Node.JS

Como este paquete está escrito en módulo ES, por favor cambia el siguiente código en tu archivo package.json:

{
  "type": "module"
}

Uso

Alojar un servidor simple

import createApp from '@sumor/ssl-server'
const app = createApp()

// escuchar en el puerto 443 por defecto si no se especifica, y redirigir 80 a https 443
await app.listen()

console.log('Servidor ejecutándose en https://localhost:443/')

Añadir archivos SSL

Por favor añade archivos SSL en la carpeta raíz ssl con los siguientes nombres:

Si no se encuentran, el servidor generará un certificado autofirmado.
Si se modifican los archivos SSL, se recargarán automáticamente.

Características

Soporta todas las características de express, la única diferencia son los métodos listen y close. Por favor, consulta el siguiente ejemplo para más detalles.

Añadir middlewares y rutas

import createApp from '@sumor/ssl-server'
const app = createApp()
import bodyParser from 'body-parser'

// puedes añadir cualquier middleware de express
app.use(bodyParser.json())

// añadir rutas
app.get('/', (req, res) => {
  res.send('¡Hola mundo!')
})

// listen es una función asincrónica
await app.listen()

Forzar cierre del servidor

import createApp from '@sumor/ssl-server'
const app = createApp()

// listen es una función asincrónica
await app.listen()
// close es una función asincrónica
await app.close()

Escuchar en un puerto personalizado

import createApp from '@sumor/ssl-server'
const app = createApp()

// listen es una función asincrónica
await app.listen(8443, 8080)
console.log(`El servidor se está ejecutando en https://localhost:8443/`)
console.log(`El servidor de redirección se está ejecutando en http://localhost:8080/`)

Escuchar solo en http

import createApp from '@sumor/ssl-server'
const app = createApp()

// listen es una función asincrónica
await app.listen(null, 8080)
console.log(`El servidor de redirección se está ejecutando en http://localhost:8080/`)

Usar una aplicación personalizada

Por defecto, el servidor ssl utilizará la última versión de soporte a largo plazo de express. Puedes utilizar tu propia aplicación express pasándola a la función createApp.

import createApp from '@sumor/ssl-server'
import express from 'express'

const expressApp = express()
expressApp.get('/', (req, res) => {
  res.send('¡Hola mundo!')
})

const app = createApp(expressApp)

// listen es una función asincrónica
await app.listen()

console.log('Servidor ejecutándose en https://localhost:443/')