express啟用https使用小記
微信小程序的服務器域名只支持https和wss,我用nodejs的express作為后端服務,經百度和折騰,成功啟用https服務。
總結以下幾步,供參考。
1.申請SSL證書
筆者用的是騰訊云,申請的是為期一年免費的證書,具體申請步驟不展開介紹,頒發(fā)證書后,得到文件:

需要用到的文件在文件夾IIS中。

2.將證書放到項目中
將后綴為.pfx的證書文件放到express項目的靜態(tài)文件夾中,筆者放在項目根目錄下的public文件夾下。

3.在express的index.js中引用證書
import express from 'express';
import fs from 'fs';
import path from 'path';
import bodyParser from 'body-parser';
// 引入history模塊
import history from 'connect-history-api-fallback';
import https from 'https';
const app = express();
const options = {
pfx: fs.readFileSync(path.join(__dirname, 'public','www.****.***.pfx')),
passphrase: '***********'
};
//options有兩個選項,一個是證書本體,一個是密碼(剛剛的IIS文件夾的keystorePass.txt文件中)
let server = https.createServer(options,app);
app.use(history());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));
app.use("/static/file",express.static(path.join(__dirname, 'public')));
app.use(function (req, res, next) {
var err = new Error('Not Found');
err.status = 404 next(err)});
// error handler
app.use(function (err, req, res, next) {
res.status(err.status || 500);
console.log(err);
res.send(err.message)
});
// 設置監(jiān)聽端口
const SERVER_PORT = 3000;
server.listen(SERVER_PORT, (req, res) => {
console.info(`服務已經啟動,監(jiān)聽端口${SERVER_PORT}`)
})
export default app
引入https模塊,設置options配置。
如上述代碼,options有兩個選項,一個是證書本體,一個是密碼(剛剛的IIS文件夾的keystorePass.txt文件中)
之后定義server,傳入option和express實例app,設置監(jiān)聽端口即可。
4.啟動服務
將后端項目部署到服務器中,啟動express,可正常訪問https服務。
后言
筆者大四下,很遺憾之前完成畢業(yè)設計那段時間沒有堅持寫文章。
目前全棧開發(fā)了一款微信小程序,剛上線不久。還寫了一款桌面程序,不過引入微信支付不太順利。
希望能把自己的經驗和遇到的坑多多寫成文章記錄下來,對同樣有興趣的朋友提供參考。也希望大家多多支持腳本之家。
相關文章
從零開始學習Node.js系列教程五:服務器監(jiān)聽方法示例
這篇文章主要介紹了Node.js服務器監(jiān)聽方法,結合實例形式分析了nodejs事件監(jiān)聽相關操作技巧,需要的朋友可以參考下2017-04-04

