在前面一篇文章中,使用openssl生成了免費證書后,我們現在使用該證書來實現我們本地node服務的https服務需求。假如我現在node基本架構如下:
|----項目| |--- static # 存放html文件| | |--- index.html # index.html| |--- node_modules # 依賴包| |--- app.js # node 入口文件| |--- package.json | |--- .babelrc # 轉換es6文件
index.html 文件代碼如下:
<!DOCTYPE html><html><head> <meta charset=utf-8> <meta name="referrer" content="never"> <title>nginx配置https</title></head><body> <div> <h2>歡迎使用https來訪問頁面</h2> </div></body></html>
app.js 代碼如下:
const Koa = require('koa');const fs = require('fs');const path = require('path');const router = require('koa-router')();const koaBody = require('koa-body');const static = require('koa-static');const app = new Koa();router.get('/', (ctx, next) => { // 設置頭類型, 如果不設置,會直接下載該頁面 ctx.type = 'html'; // 讀取文件 const pathUrl = path.join(__dirname, '/static/index.html'); ctx.body = fs.createReadStream(pathUrl); next();});app.use(static(path.join(__dirname)));app.use(router.routes());app.use(router.allowedMethods());app.listen(3001, () => { console.log('server is listen in 3001');});
package.json 代碼如下;
{ "name": "uploadandload", "version": "1.0.0", "description": "", "main": "app.js", "scripts": { "dev": "nodemon ./app.js" }, "author": "", "license": "ISC", "dependencies": { "fs": "0.0.1-security", "koa": "^2.7.0", "koa-body": "^4.1.0", "koa-router": "^7.4.0", "koa-send": "^5.0.0", "koa-static": "^5.0.0", "nodemon": "^1.19.0", "path": "^0.12.7" }}
然后我在項目的根目錄下執行 npm run dev 后,就可以在瀏覽器下訪問 http://localhost:3001 了,但是為了我想使用域名訪問的話,因此我們可以在 hosts文件下綁定下域名,比如叫 xxx.abc.com . hosts文件如下綁定:
127.0.0.1 xxx.abc.com
因此這個時候我們使用 http://xxx.abc.com:3001/ 就可以訪問頁面了,如下所示:
如上所示,我們就可以訪問頁面了,但是我們有沒有發現,在chrome瀏覽器下 顯示http請求是不安全的,因此這個時候我想使用https來訪問就好了,網頁的安全性就得到了保障,但是這個時候如果我什么都不做,直接使用https去訪問的話是不行的,比如地址:https://xxx.abc.com:3001. 如下圖所示:
我們知道使用https訪問的話,一般是需要安全證書的,因此我們現在的任務是需要使用nginx來配置下安全證書之類的事情,然后使用https能訪問網頁就能達到目標。
新聞熱點
疑難解答