您好,登錄后才能下訂單哦!
這篇“如何用Node搭建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('服務已開啟');
})
如果想使用Https服務需要兩步:1. 需要有一份SSL證書;2. 使用Node.js自身的Https模塊。
獲取SSL證書方式有兩種:
自己借助openSSL工具生成SSL證書
下載某些平臺提供的免費/付費的SSL證書(推薦)
我是使用某云平臺提供免費的證書
點擊下載后選擇服務器類型
下載后的文件分別是以.key、.pem
為后綴,其中.key
文件是base64加密私鑰,.pem
文件是base64加密的證書
相較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 訪問。
使用域名為www.linglan01.cn 才能正常的訪問。
工作中肯定是使用社區的Express等框架進行開發,想在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搭建Https服務”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。