with over nodejs node example javascript node.js ssl https webserver
https://indy.fulgan.com/SSL/openssl-0.9.8r-i386-win32-rev2.zip

over - ssl javascript



¿Cómo crear un servidor HTTPS en Node.js? (9)

  1. Descargue el archivo rar para openssl configurado aquí: https://indy.fulgan.com/SSL/openssl-0.9.8r-i386-win32-rev2.zip
  2. Sólo tienes que copiar tu carpeta en c drive.
  3. Cree el archivo openssl.cnf y descargue su contenido desde: http://web.mit.edu/crypto/openssl.cnf openssl.cnf puede ubicarse en cualquier lugar, pero la ruta debe ser correcta cuando entregamos el símbolo del sistema.
  4. Abra el comando propmt y establezca la ruta de acceso openssl.cnf C: / set OPENSSL_CONF = d: /openssl.cnf 5. Ejecute esto en cmd: C: / openssl-0.9.8r-i386-win32-rev2> openssl.exe
  5. Luego ejecute OpenSSL> genrsa -des3 -out server.enc.key 1024
  6. Luego le pedirá frases de paso: ingrese de 4 a 11 caracteres como su contraseña para el certificado
  7. Luego ejecute este Openssl> req -new -key server.enc.key -out server.csr
  8. Luego pedirá algunos detalles como el código del país, el nombre del estado, etc. Llénelo libremente. 10. Luego ejecute Openssl> rsa -in server.enc.key -out server.key
  9. Ejecute este OpenSSL> x509 -req -days 365 -in server.csr -signkey server.key -out server.crt luego use el código anterior que está en el desbordamiento de pila Gracias

Dada una clave SSL y un certificado, ¿cómo se crea un servicio HTTPS?


El documento de API Express lo explica con bastante claridad.

Además, esta respuesta proporciona los pasos para crear un certificado autofirmado.

He agregado algunos comentarios y un fragmento de la documentación HTTPS de Node.js :

var express = require(''express''); var https = require(''https''); var http = require(''http''); var fs = require(''fs''); // This line is from the Node.js HTTPS documentation. var options = { key: fs.readFileSync(''test/fixtures/keys/agent2-key.pem''), cert: fs.readFileSync(''test/fixtures/keys/agent2-cert.cert'') }; // Create a service (the app object is just a callback). var app = express(); // Create an HTTP service. http.createServer(app).listen(80); // Create an HTTPS service identical to the HTTP service. https.createServer(options, app).listen(443);


Encontré el siguiente ejemplo.

https://web.archive.org/web/20120203022122/http://www.silassewell.com/blog/2010/06/03/node-js-https-ssl-server-example/

Esto funciona para el nodo v0.1.94 - v0.3.1. server.setSecure() se elimina en las versiones más recientes del nodo.

Directamente desde esa fuente:

const crypto = require(''crypto''), fs = require("fs"), http = require("http"); var privateKey = fs.readFileSync(''privatekey.pem'').toString(); var certificate = fs.readFileSync(''certificate.pem'').toString(); var credentials = crypto.createCredentials({key: privateKey, cert: certificate}); var handler = function (req, res) { res.writeHead(200, {''Content-Type'': ''text/plain''}); res.end(''Hello World/n''); }; var server = http.createServer(); server.setSecure(credentials); server.addListener("request", handler); server.listen(8000);


Encontré esta pregunta mientras buscaba en Google "nodo https", pero el ejemplo de la respuesta aceptada es muy antiguo. Tomado de los nodejs.org/api/https.html de la versión actual (v0.10) del nodo, debería tener este aspecto:

var https = require(''https''); var fs = require(''fs''); var options = { key: fs.readFileSync(''test/fixtures/keys/agent2-key.pem''), cert: fs.readFileSync(''test/fixtures/keys/agent2-cert.pem'') }; https.createServer(options, function (req, res) { res.writeHead(200); res.end("hello world/n"); }).listen(8000);


La configuración mínima para un servidor HTTPS en Node.js sería algo como esto:

var https = require(''https''); var fs = require(''fs''); var httpsOptions = { key: fs.readFileSync(''path/to/server-key.pem''), cert: fs.readFileSync(''path/to/server-crt.pem'') }; var app = function (req, res) { res.writeHead(200); res.end("hello world/n"); } https.createServer(httpsOptions, app).listen(4433);

Si también desea admitir solicitudes http, solo necesita hacer una pequeña modificación:

var http = require(''http''); var https = require(''https''); var fs = require(''fs''); var httpsOptions = { key: fs.readFileSync(''path/to/server-key.pem''), cert: fs.readFileSync(''path/to/server-crt.pem'') }; var app = function (req, res) { res.writeHead(200); res.end("hello world/n"); } http.createServer(app).listen(8888); https.createServer(httpsOptions, app).listen(4433);


Las respuestas anteriores son buenas, pero con Express y node esto funcionará bien.

Desde que Express cree la aplicación para usted, lo omitiré aquí.

var express = require(''express'') , fs = require(''fs'') , routes = require(''./routes''); var privateKey = fs.readFileSync(''cert/key.pem'').toString(); var certificate = fs.readFileSync(''cert/certificate.pem'').toString(); // To enable HTTPS var app = module.exports = express.createServer({key: privateKey, cert: certificate});


Noté que ninguna de estas respuestas muestra que agregar una CA de Raíz Intermedia a la cadena, aquí hay algunos ejemplos de configuración cero con los que jugar para ver que:

Retazo:

var options = { key: fs.readFileSync(path.join(''certs'', ''my-server.key.pem'')) , ca: [ fs.readFileSync(path.join(''certs'', ''my-root-ca.crt.pem''))] , cert: fs.readFileSync(path.join(''certs'', ''my-server.crt.pem'')) , requestCert: false , rejectUnauthorized: false }; var server = https.createServer(options); var app = require(''./my-express-or-connect-app'').create(server); server.on(''request'', app); server.listen(443, function () { console.log("Listening on " + server.address().address + ":" + server.address().port); }); var insecureServer = http.createServer(); server.listen(80, function () { console.log("Listening on " + server.address().address + ":" + server.address().port); });

Esta es una de esas cosas que a menudo es más fácil si no intenta hacerlo directamente a través de connect o Express, pero deje que el módulo https nativo lo maneje y luego lo use para servirle a la aplicación connect / Express.

Además, si usa server.on(''request'', app) lugar de pasar la aplicación al crear el servidor, le da la oportunidad de pasar la instancia del server a alguna función de inicializador que crea la aplicación connect / express (si lo desea) para hacer websockets sobre ssl en el mismo servidor, por ejemplo).


Para permitir que su aplicación escuche http y https en los puertos 80 y 443 respectivamente, haga lo siguiente

Crear una aplicación expresa:

var express = require(''express''); var app = express();

La aplicación devuelta por express() es una función de JavaScript. Se puede pasar a los servidores HTTP de Node como una devolución de llamada para manejar las solicitudes. Esto facilita la provisión de versiones HTTP y HTTPS de su aplicación utilizando el mismo código base.

Puede hacerlo de la siguiente manera:

var express = require(''express''); var https = require(''https''); var http = require(''http''); var fs = require(''fs''); var app = express(); var options = { key: fs.readFileSync(''/path/to/key.pem''), cert: fs.readFileSync(''/path/to/cert.pem'') }; http.createServer(app).listen(80); https.createServer(options, app).listen(443);

Para más detalles ver el doc


var path = require(''path''); var express = require(''express''); var app = express(); var staticPath = path.join(__dirname, ''/public''); app.use(express.static(staticPath)); app.listen(8070, function() { console.log(''Server started at port 8070''); });