• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

Un server HTTPS con Node.js

By Giuseppe Maggi | on 21 Settembre 2016 | 0 Comment
Senza categoria

Node.js permette una rapida implementazione di API REST sfruttando il framework Express ma, ad oggi, la sicurezza in servizi remoti riveste un’importanza cruciale. Una delle possibilità più importanti per blindare i propri servizi è applicare uno strato di crittografia alla comunicazione aderendo al protocollo HTTPS, una volta caratteristica quasi esclusiva dei portali di home banking, oggi sempre più diffuso in ogni tipo di “dialogo” tra applicazioni attraverso Internet.

Come siamo abituati, Node.js offre già praticamente tutto il necessario: quello su cui dobbiamo lavorare per prima cosa è la definizione di un certificato digitale per il nostro server. Per le soluzioni in produzione, sarebbe necessario acquistarne uno validato da una Certification Authority, ma a scopo di debug o per soluzioni ad uso interno va benissimo uno self-signed: garantirà comunque le funzioni di crittografia ma non sarà garantito da nessun Ente di rilevanza mondiale.

Lo prepariamo con OpenSSL conducendo questo esperimento su una macchina Linux: come si immagina, si può fare altrimenti in base ai sistemi di cui si è dotati.

Generiamo una chiave, per prima cosa:

openssl genrsa -out privkey.pem 1024

che troveremo nel file privkey.pem (il formato .pem è tipicamente dedicato alla conservazione di chiavi e certificati).

Produciamo con la chiave una richiesta di certificato, fase in cui sarà necessario rispondere ad alcune domande:

openssl req -new -key privkey.pem -out myserver.csr

Ed infine creiamo il certificato pubblico utilizzando la richiesta appena prodotta:

openssl x509 -req -days 366 -in myserver.csr -signkey privkey.pem -out pubcert.pem

I file pubcert.pem e privkey.pem serviranno nel nostro script per Node.js dove, per il resto, conoscendo un pò l’ambiente, c’è davvero poco da spiegare:

  var fs = require('fs'),
    https = require('https'),
    express = require('express'),
    app = express();

    https.createServer({
      key: fs.readFileSync('privkey.pem'),
      cert: fs.readFileSync('pubcert.pem')
    }, app).listen(6789);

    app.get('/', function (req, res) {
      res.header('Content-type', 'text/html');
      return res.end('<h1>Ciao Mondo ... su HTTPS</h1>');
    });

Nella prima fase, richiediamo i framework necessari, poi avviamo il server sulla porta 6789 fornendogli chiave e certificato ed infine definiamo la nostra API di esempio.

Per provarlo si potrà contattare con il browser l’indirizzo https://localhost:6789: saremo avvisati che il certificato non è garantito da una CA conosciuta (infatti l’abbiamo firmato noi) ma la crittografia sarà garantita.

Abbiamo visto un altro esempio in cui Node.js dimostra la ricchezza di potenzialità nel giro di pochissime righe di codice: voi avete mai provare a creare il vostro server HTTPS con o senza Node.js ? Commentate e diteci!

Share this story:
  • tweet

Tags: api resthttpsnode.jsopensslssltlsTutorial Pratici

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • jsGrid: plugin jQuery per mostrare i dati con efficienza

    23 Febbraio 2018 - 0 Comment
  • Come integrare HTTPS su Apache web server con Let’s Encrypt

    19 Febbraio 2018 - 0 Comment
  • Crittografia: concetti di base per ogni uso

    6 Dicembre 2017 - 0 Comment

Author Description

No Responses to “Un server HTTPS con Node.js”

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO