Het lokaal uitvoeren van HTTPS is een must voor bepaalde soorten ontwikkeling.
Tijdens de ontwikkeling wilt u misschien uw webserver instellen om veilige verbindingen met browsers tot stand te brengen. Node.js maakt dit een eenvoudig proces, zelfs in een niet-productieomgeving, met zijn ingebouwde https moduul.
In productie zou u uw applicatie kunnen opzetten achter een reverse proxy zoals NGINX, die meestal certificaten voor u levert. Maar mogelijk moet u uw toepassing nog steeds testen met behulp van https in ontwikkeling.
Hoe kun je een SSL-certificaat gebruiken in een Node.js-applicatie?
Een SSL-certificaat gebruiken om een veilige Node.js-server te ontwikkelen
Je kunt gemakkelijk maak een zelfondertekend SSL-certificaat in Linuxen volg de onderstaande stappen om uw Node-toepassing te configureren om te gebruiken https.
- Maak een server-toegangspuntbestand, bijvoorbeeld index.js.
- Importeer de https En fs modules in het bestand als volgt:
const https= vereisen('https');
const f = vereisen('fs') - Definieer het optieobject voor het https server die u gaat maken. Vergeet niet te vervangen mijn-serversleutel.pem En mijn-server-cert.pem met de juiste paden van uw persoonlijke sleutel en certificaatbestanden.
const opties = {
Om een echt SSL-certificaat te gebruiken, dat u gratis kunt krijgen bij letsencrypt.org, gebruik de volgende opties:
sleutel: fs.readFileSync("mijn-server-sleutel.pem"),
cert: fs.readFileSync("mijn-server-cert.pem")
}const opties = {
toets: fs.readFileSync("/path/to/private.key"),
cert: fs.readFileSync("/path/naar/ssl_certificate.crt"),
ongeveer: [
fs.readFileSync("/path/naar/ca_root_file.crt"),
fs.readFileSync("/path/naar/ca_bundle_certificate.crt")
]
} - Initialiseer nu uw server met behulp van de opties en stel deze in om te luisteren op poort 443.
https.createServer (opties, (req, res) => {
res.writeHead(200);
res.end("hallo wereld");
})
.luisteren(443);
U kunt nu uw server in de terminal starten met behulp van knooppunt index.js. Wanneer u de verbinding test door te openen https://localhost of https://localhost: 443/ in uw browser, zou u moeten zien 'Hallo Wereld' weergegeven.
Uw browser kan u ook waarschuwen voor een onveilige verbinding wanneer u het zelfondertekende certificaat gebruikt. Dit is normaal aangezien zelfondertekende certificaten over het algemeen als onveilig worden beschouwd door webbrowsers.
Mogelijk krijgt u de fout "Fout: luister EACCES: toestemming geweigerd 0.0.0.0:443" wanneer u uw server probeert te starten, komt dit doordat uw machine de toepassing toegang tot poort 443 weigert, wat het standaardgedrag is op de meeste apparaten. Om dit op te lossen, voert u het knooppunt index.js commando als de rootgebruiker in Linux (sudo node index.js), of open uw terminal als beheerder in Windows.
SSL-certificaten gebruiken in Node.js-toepassingen
Meestal wil je SSL-certificaten pas tijdens de ontwikkelingsfase toevoegen. Productie-eisen vereisen meestal sowieso de installatie van beveiligingstools zoals firewalls en reverse proxy's.
Op deze manier is het gebruik van een SSL-certificaat voor uw applicatie niet meer nodig. Mogelijk wilt u alleen een SSL-certificaat in productie toevoegen als uw applicatie communiceert met externe services.