tutorial nodejs node introduccion español ejercicios desarrollo node.js ssl https webserver pem

node.js - nodejs - Cómo crear archivos.pem para el servidor web https



node js tutorial pdf (2)

Estoy usando Express Framework en Node.js para crear un servidor web. Quiero que el transporte se base en SSL.

El código para crear el servidor web https es el siguiente.

var app = express.createServer({ key: fs.readFileSync(''./conf/key.pem''), cert: fs.readFileSync(''./conf/cert.pem'') }); module.exports = app;

Pregunta: ¿Cómo crear key.pem y cert.pem requerido por express?


Los dos archivos que necesita son un certificado SSL con codificación PEM y una clave privada. Los certificados y claves codificados PEM son texto codificado en Base64 con delimitadores de inicio / final que se parecen a -----BEGIN RSA PRIVATE KEY----- o similar.

Para crear un certificado SSL, primero debe generar una clave privada y una solicitud de firma de certificado, o CSR (que también contiene su clave pública). Puede hacerlo de varias formas, pero así es como en OpenSSL.

openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem

Esto hará que ingrese un aviso interactivo para generar una clave privada RSA de 2048 bits y una CSR que tenga toda la información que elija ingresar en las solicitudes. ( Nota: Nombre común es el lugar donde querrá poner el nombre de dominio que utilizará para acceder a su sitio ) . Una vez hecho esto, normalmente enviaría este CSR a una autoridad de certificación de confianza y una vez que lo hayan validado. su solicitud, recibiría un certificado.

Si no le importa que se confíe en su certificado (generalmente el caso para fines de desarrollo), puede crear un certificado autofirmado. Para hacer esto, podemos usar casi la misma línea, pero pasaremos dos parámetros adicionales.

openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem

Esto le dará un certificado (válido por 10 años) y un par de claves que puede usar en el fragmento de código que publicó.


Solo sigue este procedimiento:

  1. crea la carpeta donde deseas almacenar tu clave y certificado:

    mkdir conf

  1. ir a ese directorio:

    cd conf

  1. toma este archivo ca.cnf para usarlo como atajo de configuración:

    wget https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/ca.cnf

  1. crear una nueva autoridad de certificación usando esta configuración:

    openssl req -new -x509 -days 9999 -config ca.cnf -keyout ca-key.pem -out ca-cert.pem

  1. ahora que tenemos nuestra autoridad de certificación en ca-key.pem y ca-cert.pem , generemos una clave privada para el servidor:

    openssl genrsa -out key.pem 4096

  1. agarra este archivo server.cnf para usarlo como atajo de configuración:

    wget https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/server.cnf

  1. generar la solicitud de firma de certificado utilizando esta configuración:

    openssl req -new -config server.cnf -key key.pem -out csr.pem

  1. firmar la solicitud:

    openssl x509 -req -extfile server.cnf -days 999 -passin "pass:password" -in csr.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem

Encontré este procedimiento here , junto con más información sobre cómo usar estos certificados.