夫天地者,万物之逆旅;光阴者,百代之过客。而浮生若梦,为欢几何?
Node.js 实战(一)进阶篇之—HTTPS

前言

本篇我们介绍将Node.js 实战(一)中的案例 博客系统使用HTTPS部署的过程。HTTPS部署需要使用CA证书,如果你使用的是阿里云产品可以到阿里云购买免费的DV证书,博主自己使用的就是这个。

核心实现代码

第一步, 将下载的DV证书文件拷贝到项目的config文件夹中,也可以是其他文件夹这个随意。

第二步,程序入口启动文件 server.js 中引入https、path、fs 模块。

var https = require('https');
var fs = require('fs');
var path = require('path');

第三步,读取config文件中的CA证书

var privateKey  = fs.readFileSync(path.join( __dirname,'./config/214109597780064.key'), 'utf8');
var certificate = fs.readFileSync(path.join(__dirname,'./config/214109597780064.pem'), 'utf8');
var credentials = {key: privateKey, cert: certificate};

第四步,使用 express 的use方法注入https监听模块,用于将http请求重定向到https。

app.use(function requireHTTPS(req, res, next) {
    if (!req.secure) {
        return res.redirect(301,'https://' + req.headers.host + req.url);
    }
    next();
});

第五步,创建httpsServer并监听443端口。https使用的是443端口,请确保你的服务器没有屏蔽该端口。

var httpsServer = https.createServer(credentials, app);
httpsServer.listen(443);

至此大功告成,我们完成了博客系统的https部署。

作者:暗夜余晖

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

0

支持

0

反对

posted @2017-6-7  拜读(1855)

评论列表

评论内容:



喜欢请打赏

支付宝 微信

请放心支付