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:
crea la carpeta donde deseas almacenar tu clave y certificado:
mkdir conf
ir a ese directorio:
cd conf
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
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
ahora que tenemos nuestra autoridad de certificación en
ca-key.pem
yca-cert.pem
, generemos una clave privada para el servidor:openssl genrsa -out key.pem 4096
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
generar la solicitud de firma de certificado utilizando esta configuración:
openssl req -new -config server.cnf -key key.pem -out csr.pem
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.