koa2服務(wù)配置SSL的實(shí)現(xiàn)方法
一:前言
1:SSL證書
我的域名在騰訊云,每次解析新建一個(gè)三級(jí)域名(假設(shè)是 aaa.jiangw1.com ),都會(huì)贈(zèng)送一年的SSL,申請(qǐng)成功后下載SSL證書,如下:

可以看到準(zhǔn)備了各種服務(wù)器的文件,node服務(wù)用紅圈中的通用ssl文件即可。
2:解析
aaa.jiangw1.com記錄類型填 A ,記錄值填服務(wù)器公網(wǎng)IP
二:代碼
以下代碼限定 koa2項(xiàng)目,其余node項(xiàng)目也都類似。
1:安裝依賴
npm install koa-sslify npm install koa2-cors
2:app.js新增
const app = new Koa();
const cors = require('koa2-cors');
const sslify = require('koa-sslify').default;
// 使用 ssl
app.use(sslify());
// 跨域設(shè)置
app.use(cors({
origin: function (ctx) {
return ctx.header.origin;
}
}))
3:bin文件夾修改
新建ssl文件夾,放入SSL證書中的 .key和 .pem文件。
修改 bin/www,如下:
var https = require("https");
var fs = require("fs");
var path = require("path");
/**
* Create HTTP server.
*/
// SSL options
var options = {
key: fs.readFileSync(path.join(__dirname, './ssl/aaa.jiangw1.com.key')),
cert: fs.readFileSync(path.join(__dirname, './ssl/aaa.jiangw1.com.pem'))
};
// var server = http.createServer(app.callback());
var httpsServer = https.createServer(options, app.callback());
httpsServer.listen(port, (err) => {
if (err) {
console.log('server init error', err);
} else {
console.log('server running at port :' + port);
}
});
httpsServer.on('error', onError);
httpsServer.on('listening', onListening);
/**
* Event listener for HTTP server "listening" event.
*/
function onListening() {
// var addr = server.address();
var addr = httpsServer.address();
var bind = typeof addr === 'string'
? 'pipe ' + addr
: 'port ' + addr.port;
debug('Listening on ' + bind);
}
4:?jiǎn)?dòng)
本地啟動(dòng):
瀏覽器進(jìn)入 https://localhost:3010, 能進(jìn)去說明本地配置成功,應(yīng)該會(huì)提示域名無效。
服務(wù)端啟動(dòng):
源代碼上傳后,用pm2啟動(dòng)服務(wù),瀏覽器訪問 aaa.jiangw1.com, 能進(jìn)去說明本地配置成功
三:注意事項(xiàng)
- linux服務(wù)器要放開 443端口
- ssl證書文件一定要配置準(zhǔn)確
- node服務(wù)的端口一定要暴露出來
- 域名解析要填準(zhǔn)確
到此這篇關(guān)于koa2服務(wù)配置SSL的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)koa2服務(wù)配置SSL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Node使用koa2實(shí)現(xiàn)一個(gè)簡(jiǎn)單JWT鑒權(quán)的方法
這篇文章主要介紹了Node使用koa2實(shí)現(xiàn)一個(gè)簡(jiǎn)單JWT鑒權(quán)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Node.js開發(fā)教程之基于OnceIO框架實(shí)現(xiàn)文件上傳和驗(yàn)證功能
這篇文章主要介紹了Node.js開發(fā)教程之基于OnceIO框架實(shí)現(xiàn)文件上傳和驗(yàn)證的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11
Node.js 實(shí)現(xiàn)簡(jiǎn)單的無侵入式緩存框架的方法
這篇文章主要介紹了Node.js 實(shí)現(xiàn)簡(jiǎn)單的無侵入式緩存框架的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
node.js根據(jù)不同請(qǐng)求路徑返回不同數(shù)據(jù)詳解流程
本篇文章介紹了我在開發(fā)過程中發(fā)現(xiàn)的一個(gè)小問題,就是node.js如何能夠根據(jù)不同的請(qǐng)求路徑來返回得到不同數(shù)據(jù),通讀本篇對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下2021-10-10
使用 Node.js 模擬滑動(dòng)拼圖驗(yàn)證碼操作的示例代碼
本篇文章主要介紹了使用 Node.js 模擬滑動(dòng)驗(yàn)證碼操作的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11
Node.js API詳解之 querystring用法實(shí)例分析
這篇文章主要介紹了Node.js API詳解之 querystring用法,結(jié)合實(shí)例形式分析了Node.js API中querystring的基本功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2020-04-04

