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證書
獲取SSL證書方式有兩種:
- 自己借助openSSL工具生成SSL證書
- 下載某些平臺提供的免費(fèi)/付費(fèi)的SSL證書(推薦)
我是使用某云平臺提供免費(fèi)的證書
點擊下載后選擇服務(wù)器類型
下載后的文件分別是以.key、.pem
為后綴,其中.key
文件是base64加密私鑰,.pem
文件是base64加密的證書
使用Node.js自身的Https模塊開啟一個服務(wù)
相較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('服務(wù)已開啟');
})
由于SSL證書我綁定的域名是www.linglan01.cn ,當(dāng)我使用https://127.0.0.1:8080 訪問服務(wù)時與綁定的域名不相符,它會被攔截訪問,僅允許 www.linglan01.cn 訪問。
使用域名為www.linglan01.cn 才能正常的訪問。
使用Express框架開啟Https
工作中肯定是使用社區(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ù)已開啟');
})
文章來源:http://www.zghlxwxcb.cn/news/detail-813207.html
總結(jié)
Node.js中搭建Https服務(wù)不難,Node.js已經(jīng)為我們提供了Https模塊可以快捷的完成搭建。Https服務(wù)實際中僅會使用到線上環(huán)境,如果本地環(huán)境也需要,我們也可以使用openSSL工具生成一個證書。文章來源地址http://www.zghlxwxcb.cn/news/detail-813207.html
到了這里,關(guān)于Node.js搭建Https服務(wù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!