Di Timilehin Omolana

L'esecuzione di HTTPS in locale è un must per alcuni tipi di sviluppo.

I lettori come te aiutano a sostenere MUO. Quando effettui un acquisto utilizzando i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Per saperne di più.

Durante lo sviluppo, potresti voler configurare il tuo server web per stabilire connessioni sicure con i browser. Node.js rende questo processo semplice, anche in un ambiente non di produzione, con il suo integrato https modulo.

In produzione, potresti configurare la tua applicazione dietro un proxy inverso come NGINX, che di solito fornisce i certificati per te. Ma potresti comunque dover testare la tua applicazione utilizzando https in sviluppo.

Come puoi utilizzare un certificato SSL in un'applicazione Node.js?

Come utilizzare un certificato SSL per sviluppare un server Node.js sicuro

Puoi facilmente creare un certificato SSL autofirmato in Linuxe segui i passaggi seguenti per configurare l'applicazione Node da utilizzare https.

instagram viewer
  1. Crea un file del punto di ingresso del server, ad esempio index.js.
  2. Importa il https E fs moduli nel file in questo modo: cost https = richiedere('https');
    cost fs = richiedere('fs')
  3. Definire l'oggetto opzioni per il https server che stai per creare. Ricordati di sostituire chiave-del-mio-server.pem E mio-server-cert.pem con i percorsi corretti della chiave privata e dei file del certificato. cost opzioni = {
    chiave: fs.readFileSync("my-server-key.pem"),
    certificato: fs.readFileSync("mio-server-cert.pem")
    }
    Per utilizzare un vero certificato SSL, che puoi ottenere gratuitamente su letsencrypt.org, utilizzare le seguenti opzioni: cost opzioni = {
    chiave: fs.readFileSync("/path/to/private.key"),
    certificato: fs.readFileSync("/path/to/certificato_ssl.crt"),
    circa: [
    fs.readFileSync("/path/to/ca_root_file.crt"),
    fs.readFileSync("/path/to/ca_bundle_certificate.crt")
    ]
    }
  4. Ora inizializza il tuo server usando le opzioni e impostalo in ascolto sulla porta 443. https.createServer (opzioni, (req, res) => {
    res.writeHead(200);
    res.end("ciao mondo");
    })
    .Ascoltare(443);

Ora puoi avviare il tuo server nel terminale usando nodo index.js. Quando si verifica la connessione aprendo https://localhost O https://localhost: 443/ nel tuo browser, dovresti vedere 'Ciao mondo' visualizzato.

Il tuo browser potrebbe anche avvisarti di una connessione non sicura quando utilizzi il certificato autofirmato. Questo è normale poiché i certificati autofirmati sono generalmente considerati non sicuri dai browser web.

Potresti ricevere l'errore "Errore: ascolta EACCES: permesso negato 0.0.0.0:443" quando provi ad avviare il tuo server, ciò è dovuto al fatto che la tua macchina nega all'applicazione l'accesso alla porta 443 che è il comportamento predefinito nella maggior parte dei dispositivi. Per risolvere questo problema, eseguire il file nodo index.js comando come utente root in Linux (sudo node index.js) o apri il tuo terminale come amministratore in Windows.

Utilizzo dei certificati SSL nelle applicazioni Node.js

La maggior parte delle volte, vorrai solo aggiungere certificati SSL durante la fase di sviluppo. I requisiti di produzione di solito richiedono comunque l'installazione di strumenti di sicurezza come firewall e proxy inversi.

In questo modo, non è più necessario utilizzare un certificato SSL per la tua applicazione. Potresti voler aggiungere un certificato SSL in produzione solo se la tua applicazione comunica con servizi esterni.

Iscriviti alla nostra Newsletter

Commenti

CondividereTwittaCondividereCondividereCondividere
Diritto d'autore
E-mail
Condividere
CondividereTwittaCondividereCondividereCondividere
Diritto d'autore
E-mail

Link copiato negli appunti

Argomenti correlati

  • Programmazione
  • Sviluppo web
  • SSL
  • javascript

Circa l'autore

Timilehin Omolana(12 articoli pubblicati)

Timilehin è un ingegnere del software e scrittore tecnico che ama esplorare il mondo delle tecnologie lato server e dei sistemi distribuiti.