在nodejs中使用express能夠快速搭建起web框架,但默認是http協議訪問,這對於小綠鎖愛好者的我固然是沒法忍受的。畢竟https已經成爲了主流。本篇文章會給你們介紹如何給express框架中的項目配置https服務,讓用戶能夠經過瀏覽器使用https進行訪問html
1.安裝expressnode
npm install express -g
在安裝了express以後,咱們就能夠進行新項目的建立了,進入項目存放文件夾。執行:web
express -e ejs projectname
執行後可見工程目錄下出現如下文件夾:express
cd [項目所在目錄] && npm install
因爲我使用的是阿里雲的服務器,在此以前已經開放了443的監聽安全組,沒有配置安全組的小夥伴還須要手動配置一下npm
將SSL證書安裝到項目文件夾中,好比放到新建的certificate文件夾。瀏覽器
完成以上步驟後,修改項目的啓動文件,我這裏的啓動文件是app.js安全
下面是個人實現代碼:服務器
const express=require("express"); const app=express(); app.use(express.static('public')) // app.get('/',function(req,res){ // res.redirect('./web/index.html'); // }); // app.listen(80,"內網ip"); var path = require('path'); var fs = require('fs'); //使用nodejs自帶的http、https模塊 var http = require('http'); var https = require('https'); //根據項目的路徑導入生成的證書文件 var privateKey = fs.readFileSync(path.join(__dirname, './certificate/cert-1533745826203_www.dreamyheart.com.key'), 'utf8'); var certificate = fs.readFileSync(path.join(__dirname, './certificate/cert-1533745826203_www.dreamyheart.com.crt'), 'utf8'); var credentials = {key: privateKey, cert: certificate}; var httpServer = http.createServer(app); var httpsServer = https.createServer(credentials, app); //能夠分別設置http、https的訪問端口號 var PORT = 80; var SSLPORT = 443; //建立http服務器 httpServer.listen(PORT, function() { console.log('HTTP Server is running on: http://localhost:%s', PORT); }); //建立https服務器 httpsServer.listen(SSLPORT, function() { console.log('HTTPS Server is running on: https://localhost:%s', SSLPORT); }); //能夠根據請求判斷是http仍是https app.get('/', function (req, res,next) { res.redirect('./web/index.html'); }); app.get('*', function (req, res) { res.sendfile('./public/web/404.html'); });
執行node app.jsapp
部署https完畢框架