溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何用Node搭建Https服務(wù)

發(fā)布時(shí)間:2023-03-28 10:13:14 來源:億速云 閱讀:125 作者:iii 欄目:web開發(fā)

這篇“如何用Node搭建Https服務(wù)”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“如何用Node搭建Https服務(wù)”文章吧。

Node.js用于做小程序后臺服務(wù),域名要求必須是Https協(xié)議。在Node.js開啟Http服務(wù)是非常簡單的,如下:

const http = require('http');
const server = http.createServer((req, res) => {
    res.writeHead(200, { 'Content-Type': 'text/html;charset=utf8' });
    res.end('訪問成功')
});
server.listen(8080, () => {
    console.log('服務(wù)已開啟');
})

如何用Node搭建Https服務(wù)如果想使用Https服務(wù)需要兩步:1. 需要有一份SSL證書;2. 使用Node.js自身的Https模塊。

SSL證書

獲取SSL證書方式有兩種:

  1. 自己借助openSSL工具生成SSL證書 

  2. 下載某些平臺提供的免費(fèi)/付費(fèi)的SSL證書(推薦)

我是使用某云平臺提供免費(fèi)的證書

如何用Node搭建Https服務(wù)

點(diǎn)擊下載后選擇服務(wù)器類型

如何用Node搭建Https服務(wù)

下載后的文件分別是以.key、.pem為后綴,其中.key文件是base64加密私鑰,.pem文件是base64加密的證書

如何用Node搭建Https服務(wù)

使用Node.js自身的Https模塊開啟一個(gè)服務(wù)

相較Http,它多了一個(gè)options參數(shù)。

const https = require('https');
const fs = require('fs');
const path = require('path');
const options = {
    key: fs.readFileSync(path.join(__dirname, './ssl/9499016_www.linglan01.cn.key')),
    cert: fs.readFileSync(path.join(__dirname, './ssl/9499016_www.linglan01.cn.pem')),
};
const server = https.createServer(options, (req, res) => {
    res.writeHead(200, { 'Content-Type': 'text/html;charset=utf8' });
    res.end('訪問成功')
});
server.listen(8080, () => {
    console.log('服務(wù)已開啟');
})

由于SSL證書我綁定的域名是www.linglan01.cn ,當(dāng)我使用https://127.0.0.1:8080 訪問服務(wù)時(shí)與綁定的域名不相符,它會被攔截訪問,僅允許 www.linglan01.cn 訪問。

如何用Node搭建Https服務(wù)

使用域名為www.linglan01.cn 才能正常的訪問。

如何用Node搭建Https服務(wù)

使用Express框架開啟Https

工作中肯定是使用社區(qū)的Express等框架進(jìn)行開發(fā),想在Express等框架中開啟Https也非常容易,以Express舉例:

const https = require('https');
const fs = require('fs');
const path = require('path');
const express = require('express')
const app = express();
app.get('/chat', (req, res) => {
    res.send('我是https')
});
const options = {
    key: fs.readFileSync(path.join(__dirname, './ssl/9499016_www.linglan01.cn.key')),
    cert: fs.readFileSync(path.join(__dirname, './ssl/9499016_www.linglan01.cn.pem')),
};
const server = https.createServer(options, app);
server.listen(8080, () => {
    console.log('服務(wù)已開啟');
})

如何用Node搭建Https服務(wù)

以上就是關(guān)于“如何用Node搭建Https服務(wù)”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI