怎么利用Node搭建Https服務(wù)?下面本篇文章給大家介紹一下Node.js搭建Https服務(wù)的方法,希望對(duì)大家有所幫助!
Node.js用于做小程序后臺(tái)服務(wù),域名要求必須是Https協(xié)議。在Node.js開啟Http服務(wù)是非常簡(jiǎn)單的,如下:
(資料圖片)
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ù)已開啟");})如果想使用Https服務(wù)需要兩步:1. 需要有一份SSL證書;2. 使用Node.js自身的Https模塊。
獲取SSL證書方式有兩種:
自己借助openSSL工具生成SSL證書 【相關(guān)教程推薦:nodejs視頻教程、編程教學(xué)】下載某些平臺(tái)提供的免費(fèi)/付費(fèi)的SSL證書(推薦)我是使用某云平臺(tái)提供免費(fèi)的證書
點(diǎn)擊下載后選擇服務(wù)器類型
下載后的文件分別是以.key、.pem為后綴,其中.key文件是base64加密私鑰,.pem文件是base64加密的證書
相較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í)與綁定的域名不相符,它會(huì)被攔截訪問,僅允許 www.linglan01.cn 訪問。
使用域名為www.linglan01.cn 才能正常的訪問。
工作中肯定是使用社區(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.js中搭建Https服務(wù)不難,Node.js已經(jīng)為我們提供了Https模塊可以快捷的完成搭建。Https服務(wù)實(shí)際中僅會(huì)使用到線上環(huán)境,如果本地環(huán)境也需要,我們也可以使用openSSL工具生成一個(gè)證書。
更多node相關(guān)知識(shí),請(qǐng)?jiān)L問:nodejs 教程!
以上就是怎么利用Node搭建Https服務(wù)的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
關(guān)鍵詞: