您好,登錄后才能下訂單哦!
這篇“如何用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ù)已開啟');
})
如果想使用Https服務(wù)需要兩步:1. 需要有一份SSL證書;2. 使用Node.js自身的Https模塊。
獲取SSL證書方式有兩種:
自己借助openSSL工具生成SSL證書
下載某些平臺提供的免費(fèi)/付費(fèi)的SSL證書(推薦)
我是使用某云平臺提供免費(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í)與綁定的域名不相符,它會被攔截訪問,僅允許 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ù)已開啟');
})
以上就是關(guān)于“如何用Node搭建Https服務(wù)”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。
免責(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)容。