Node.js搭建Https服務過程詳解
Node.js開啟Http服務
Node.js用于做小程序后臺服務,域名要求必須是Https協(xié)議。在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('服務已開啟'); })
如果想使用Https服務需要兩步:1. 需要有一份SSL證書;2. 使用Node.js自身的Https模塊。
SSL證書
獲取SSL證書方式有兩種:
- 自己借助openSSL工具生成SSL證書
- 下載某些平臺提供的免費/付費的SSL證書(推薦)
我是使用某云平臺提供免費的證書
點擊下載后選擇服務器類型
下載后的文件分別是以.key、.pem
為后綴,其中.key
文件是base64加密私鑰,.pem
文件是base64加密的證書
使用Node.js自身的Https模塊開啟一個服務
相較Http,它多了一個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('服務已開啟'); })
由于SSL證書我綁定的域名是www.linglan01.cn ,當我使用https://127.0.0.1:8080 訪問服務時與綁定的域名不相符,它會被攔截訪問,僅允許 www.linglan01.cn 訪問。
使用域名為www.linglan01.cn 才能正常的訪問。
使用Express框架開啟Https
工作中肯定是使用社區(qū)的Express等框架進行開發(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('服務已開啟'); })
總結
Node.js中搭建Https服務不難,Node.js已經(jīng)為我們提供了Https模塊可以快捷的完成搭建。Https服務實際中僅會使用到線上環(huán)境,如果本地環(huán)境也需要,我們也可以使用openSSL工具生成一個證書。
以上就是Node.js搭建Https服務過程詳解的詳細內(nèi)容,更多關于Node.js搭建Https服務的資料請關注腳本之家其它相關文章!
相關文章
理解nodejs的stream和pipe機制的原理和實現(xiàn)
本篇文章主要介紹了理解nodejs的stream和pipe機制的原理和實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08PostgreSQL Node.js實現(xiàn)函數(shù)計算方法示例
這篇文章主要給大家介紹了關于PostgreSQL Node.js實現(xiàn)函數(shù)計算的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-02-02node中npm ERR! network ‘proxy‘ 配置問題解決
在進行npm依賴管理時,可能會遇到因網(wǎng)絡配置不當導致的錯誤,如npm ERR! network proxy config is set properly,下面就來介紹一下,感興趣的可以了解一下2024-09-09Node.js 獲取微信JS-SDK CONFIG的方法示例
這篇文章主要介紹了Node.js 獲取微信JS-SDK CONFIG的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-05-05Windows中徹底刪除Node.js環(huán)境(以及npm)的方法
本文詳細介紹了如何在Windows電腦中徹底刪除Node.js環(huán)境,包括查找安裝路徑、使用控制面板卸載以及手動刪除殘留文件夾2025-01-01NVM管理Node.js實現(xiàn)不同版本Angular環(huán)境切換
Node Version Manager(NVM)是一個用于管理多個Node.js版本的工具,它允許用戶在同一臺機器上安裝和使用多個Node.js版本,本文將給大家介紹NVM管理Node.js實現(xiàn)不同版本Angular環(huán)境切換的流程步驟,需要的朋友可以參考下2024-05-05node?gyp安裝canvas原生模塊編譯node?pregyp詳解
這篇文章主要為大家介紹了Nodejs關于原生模塊編譯node-gyp + node-pre-gyp (以安裝canvas為例)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11nodejs+mongodb+vue前后臺配置ueditor的示例代碼
本篇文章主要介紹了nodejs+mongodb+vue前后臺配置ueditor的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01