Å kjøre HTTPS lokalt er et must for visse typer utvikling.
Under utviklingen kan det være lurt å sette opp webserveren din for å etablere sikre tilkoblinger med nettlesere. Node.js gjør dette til en enkel prosess, selv i et ikke-produksjonsmiljø, med dens innebygde https modul.
I produksjon kan du sette opp applikasjonen bak en omvendt proxy som NGINX, som vanligvis serverer sertifikater for deg. Men du må kanskje fortsatt teste applikasjonen din med https under utvikling.
Hvordan kan du bruke et SSL-sertifikat i en Node.js-applikasjon?
Slik bruker du et SSL-sertifikat for å utvikle en sikker Node.js-server
Du kan enkelt opprette et selvsignert SSL-sertifikat i Linux, og følg trinnene nedenfor for å konfigurere Node-applikasjonen til bruk https.
- Opprett en serverinngangspunktfil, f.eks. index.js.
- Importer https og fs moduler i filen slik:
konst https = krever('https');
konst fs = krever('fs') - Definer alternativobjektet for https serveren du er i ferd med å opprette. Husk å bytte ut min-server-nøkkel.pem og min-server-cert.pem med de riktige banene til din private nøkkel og sertifikatfiler.
konst alternativer = {
For å bruke et ekte SSL-sertifikat, som du kan få gratis på letsencrypt.org, bruk følgende alternativer:
nøkkel: fs.readFileSync("min-server-nøkkel.pem"),
cert: fs.readFileSync("my-server-cert.pem")
}konst alternativer = {
nøkkel: fs.readFileSync("/path/til/private.key"),
cert: fs.readFileSync("/path/to/ssl_certificate.crt"),
ca: [
fs.readFileSync("/path/to/ca_root_file.crt"),
fs.readFileSync("/path/to/ca_bundle_certificate.crt")
]
} - Initialiser nå serveren din ved å bruke alternativene og sett den til å lytte på port 443.
https.createServer (alternativer, (req, res) => {
res.writeHead(200);
res.end("hei verden");
})
.lytte(443);
Du kan nå starte serveren din i terminalen med node index.js. Når du tester tilkoblingen ved å åpne https://localhost eller https://localhost: 443/ i nettleseren din, bør du se 'Hei Verden' vises.
Nettleseren din kan også advare deg om en usikker tilkobling når du bruker det selvsignerte sertifikatet. Dette er normalt siden selvsignerte sertifikater generelt anses som usikre av nettlesere.
Du kan få feilen "Feil: lytt EACCES: tillatelse nektet 0.0.0.0:443" når du prøver å starte serveren din, skyldes dette at maskinen din nekter applikasjonen tilgang til port 443, som er standardoppførselen på de fleste enheter. For å fikse dette, kjør node index.js kommando som root-bruker i Linux (sudo node index.js), eller åpne terminalen som administrator i Windows.
Bruke SSL-sertifikater i Node.js-applikasjoner
Mesteparten av tiden vil du bare legge til SSL-sertifikater under utviklingsfasen. Produksjonskrav krever vanligvis installasjon av sikkerhetsverktøy som brannmurer og omvendte proxyer uansett.
På denne måten er det ikke lenger nødvendig å bruke et SSL-sertifikat for applikasjonen din. Du vil kanskje bare legge til et SSL-sertifikat i produksjon hvis applikasjonen din kommuniserer med eksterne tjenester.