首頁 >web前端 >js教程 >怎麼利用Node搭建Https服務

怎麼利用Node搭建Https服務

青灯夜游
青灯夜游轉載
2023-03-27 20:12:432305瀏覽

怎麼利用Node搭建Https服務?以下這篇文章跟大家介紹Node.js搭建Https服務的方法,希望對大家有幫助!

怎麼利用Node搭建Https服務

Node.js用於做小程式後台服務,網域要求必須是Https協定。在Node.js開啟Http服務是非常簡單的,如下:

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('服务已开启');
})

怎麼利用Node搭建Https服務如果想使用Https服務需要兩個步驟:1. 需要有一份SSL憑證;2. 使用Node.js自身的Https模組。

SSL憑證

取得SSL憑證方式有兩種:

  1. 自己借助openSSL工具產生SSL憑證【相關教學推薦:nodejs影片教學程式設計教學
  2. #下載某些平台提供的免費/付費的SSL憑證(推薦)

我是使用某雲平台提供免費的憑證

怎麼利用Node搭建Https服務

點擊下載後選擇伺服器類型

怎麼利用Node搭建Https服務

##下載後的檔案分別是以.key、.pem為後綴,其中.key檔案是base64加密私鑰,

.pem

檔案是base64加密的憑證怎麼利用Node搭建Https服務

使用Node.js本身的Https模組開啟一個服務

相較Http,它多了一個options參數。

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('服务已开启');
})
由於SSL憑證我綁定的網域是www.linglan01.cn ,當我使用https://127.0.0.1:8080 存取服務時與綁定的網域不相符,它會被攔截訪問,僅允許

www.linglan01.cn

訪問。 怎麼利用Node搭建Https服務

使用網域為

www.linglan01.cn

才能正常的存取。 怎麼利用Node搭建Https服務

使用Express框架開啟Https

#工作中肯定是使用社群的Express等框架來開發,想在Express等框架中開啟Https也非常容易,以Express舉例:怎麼利用Node搭建Https服務

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('服务已开启');
})

#總結

Node.js中建立Https服務不難, Node.js已經為我們提供了Https模組可以快速的完成搭建。 Https服務實際上只會使用到線上環境,如果本機環境也需要,我們也可以使用

openSSL

工具產生一個憑證。 更多node相關知識,請造訪:

nodejs 教學###! ###

以上是怎麼利用Node搭建Https服務的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:juejin.cn。如有侵權,請聯絡admin@php.cn刪除