koa2开启ssl安全协议、以及配置http2,所以教程都是基于koa2框架下修改的。
这里说明一下,网上的很多教程都是使用nginx来进行配置的,对于那些不熟悉linux系统的同学来说很痛苦。这里的教程基本都是安装node.js模块来实现的。
申请证书:https://cloud.tencent.com/product/ssl?fromSource=gwzcw.231572.231572.231572
申请好之后就可以下载了。
(注意如果在国内买的空间,例如:阿里云的记得要对外开放443端口)教程:https://sdeno.com/?p=5797
0,系统依赖
本人使用的是centos 6.x系统,要使用ssl、http2,那就需要系统安装相应的依赖包。
具体查看https://sdeno.com/?p=5731 中的 gcc、pcre、zlib和openssl 1.0.2以上版本
1,http2、ssl安装、以及使用
npm install http2 --save 编辑 ./bin/www 添加以下代码 var http2 = require('http2'); var fs = require('fs'); . . . var options = { key: fs.readFileSync('/root/www/Nginx/2_www.easynode.cn.key','utf8'), cert: fs.readFileSync('/root/www/Nginx/1_www.easynode.cn_bundle.crt','utf8') }; . . . http2.createServer(options, app.callback()).listen(443);
以上的配置完成后可以同时访问80端口和443端口,但是我们需要自动跳转到443端口,可按照如下教程修改:
2,80端口自动跳转到443端口
安装koa-sslify
npm install koa-sslify --save 编辑app.js,添加以下代码 var enforceHttps = require('koa-sslify'); . . // middlewares app.use(enforceHttps());
以上虽然可以实现需要的功能但是有缺点
1,对静态文件缓存(网上找遍了很多教程都没找到方法,都是使用nginx)
2,占用了443端口。(如果一个服务器上想多个网站都使用ssl,就只能使用一个端口了)
所以还是推荐使用nginx,来实现ssl、http2和静态文件缓存,最佳方案。
至于nginx教程:https://sdeno.com/?p=5731