HTTP: cuando la transferencia de datos en el protocolo HTTP, solo viaja en formato de texto claro.
HTTPS: simplemente realiza el cifrado cuando la solicitud viaja desde el navegador al servidor web, por lo que es difícil rastrear esa información. Básicamente funciona en dos cosas:
- SSL (capa de conexión segura)
- TLS (Seguridad de la capa de transporte)
Ambos utilizan una PKI (infraestructura de clave pública)
- Si no puede pagar un certificado SSL, la otra alternativa es que hay muchos servicios de pago que pueden proporcionarle una API para integrar en su sitio web, es decir, puede tener su sitio web en un canal no seguro (HTTP) y siempre que haya es un pago, simplemente redirige al usuario a ese servicio de pasarela de pago.
- HTTPS es un módulo separado en Node.js y se usa para comunicarse a través de un canal seguro con el cliente. HTTPS es el protocolo HTTP sobre SSL/TLS (protocolo HTTP seguro).
Hay varias ventajas en esta capa adicional:
- La Integridad y la Confidencialidad están garantizadas, ya que la conexión se cifra de forma asimétrica.
- Obtenemos autenticación al tener claves y certificados.
Un ejemplo para configurar el servidor HTTPS con Node.Js es el siguiente:
- Primero crearemos un archivo homepage.html, este archivo homepage.html tendrá un código HTML de creación de una página web, es decir, la página que se mostrará cuando el usuario la solicite o ingrese la URL de la misma.
- El archivo homepage.html también tendrá un recurso homepage.css
- Cuando el navegador intente obtener el recurso homepage.css, lo arrojará al servidor, el servidor creará un encabezado de respuesta, para que el navegador sepa cómo analizar el archivo.
- El código que se muestra a continuación está escrito en un tercer archivo guardado como archivo .js.
javascript
<script> (function() { // Reading and writing to files in Node.js // working with directories or file system var fs = require("fs"); // Responsible for creating HTTPS server // taking options for the server // options like where your certificates // and private key files are located // also take actual request and response server // code for parsing web pages from files var https = require("https"); // Helps with mimetypes in creating our response header var path = require("path"); // "text/css" is added in response header // so browser knows how to handle it var mimetypes = { "css":"text/css", "html":"text/html" }; // Options is used by the servers // pfx handles the certificate file var options = { pfx: fs.readFileSync("ssl/cert.pfx"), passphrase: "encrypted" }; var server = https.createServer(options, function(request, response) { // If the url is empty if (request.url == "" || request.url == "/") { request.url = "homepage.html"; } // __dirname is the directory where we are getting // these files from __dirname holds the file route // request.url is the index.html we made earlier // function is the callback function that holds two // parameters fs.readFile(__dirname + "/" + request.url, function(err, content) { if (err) { console.log("Error: " + err); } else { // 200 is code for OK // content-Type is the object or the content header response.writeHead(200, {'Content-Type':mimetypes[path.extname(request.url).split(".")[1]]}); response.write(content); } // This will send our response back to the browser response.end(); }); }); server.listen("port number", "IP Address", function() { console.log("Server has started!"); }); })(); </script>
Salida: cualquiera que sea el número de puerto y la dirección IP que se le dé al servidor, escuche, ejecutará esa única página web siempre que se solicite. Y esta página web será un HTTPS.
Publicación traducida automáticamente
Artículo escrito por vedantsharma674 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA