Lokální spuštění HTTPS je pro určité typy vývoje nutností.
Během vývoje možná budete chtít nastavit webový server tak, aby navazoval zabezpečené spojení s prohlížeči. Node.js z toho dělá přímočarý proces, dokonce i v neprodukčním prostředí, s jeho vestavěnou funkcí https modul.
Ve výrobě můžete svou aplikaci nastavit za reverzní proxy, jako je NGINX, která vám obvykle poskytuje certifikáty. Možná však budete muset aplikaci otestovat pomocí https ve vývoji.
Jak můžete použít certifikát SSL v aplikaci Node.js?
Jak používat certifikát SSL k vývoji zabezpečeného serveru Node.js
Můžete snadno vytvořit certifikát SSL s vlastním podpisem v systému Linuxa podle níže uvedených kroků nakonfigurujte aplikaci Node k použití https.
- Vytvořte soubor vstupního bodu serveru, např. index.js.
- Importujte https a fs moduly v souboru takto:
konst https = vyžadovat('https');
konst fs = vyžadovat('fs') - Definujte objekt options pro https server, který se chystáte vytvořit. Nezapomeňte vyměnit můj-klíč-serveru.pem a můj-server-cert.pem se správnými cestami k souborům vašeho soukromého klíče a certifikátu.
konst možnosti = {
Chcete-li použít skutečný SSL certifikát, který můžete získat zdarma na letsencrypt.org, použijte následující možnosti:
klíč: fs.readFileSync("my-server-key.pem"),
cert: fs.readFileSync("my-server-cert.pem")
}konst možnosti = {
klíč: fs.readFileSync("/path/to/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")
]
} - Nyní inicializujte svůj server pomocí možností a nastavte jej tak, aby naslouchal na portu 443.
https.createServer (options, (req, res) => {
res.writeHead(200);
res.end("ahoj světe");
})
.poslouchat(443);
Nyní můžete spustit server v terminálu pomocí node index.js. Když otestujete připojení otevřením https://localhost nebo https://localhost: 443/ ve vašem prohlížeči byste měli vidět 'Ahoj světe' zobrazeno.
Váš prohlížeč vás také může varovat před nezabezpečeným připojením při použití certifikátu s vlastním podpisem. To je normální, protože certifikáty s vlastním podpisem jsou webovými prohlížeči obecně považovány za nezabezpečené.
Může se vám zobrazit chyba "Chyba: poslouchejte EACCES: povolení odepřeno 0.0.0.0:443" když se pokusíte spustit server, je to způsobeno tím, že váš počítač odepře aplikaci přístup k portu 443, což je výchozí chování ve většině zařízení. Chcete-li to opravit, spusťte node index.js příkaz jako uživatel root v Linuxu (sudo node index.js), nebo otevřete svůj terminál jako správce ve Windows.
Použití certifikátů SSL v aplikacích Node.js
Většinu času budete chtít přidat certifikáty SSL pouze ve fázi vývoje. Výrobní požadavky obvykle vyžadují instalaci bezpečnostních nástrojů, jako jsou firewally a reverzní proxy.
Tímto způsobem již není vyžadováno použití certifikátu SSL pro vaši aplikaci. SSL certifikát můžete chtít přidat do výroby pouze v případě, že vaše aplikace komunikuje s externími službami.