前言
少废话,多做事。直接上代码。
正文
1 申请证书
因为我的域名是在阿里云上买的, 所以我就直接用了阿里提供的ssl证书申请.
入口在阿里云
进去点购买证书, 买免费的版本,不差钱的请自便。
然后后面就按照提示点下去,阿里云会自动帮你在DNS中添加一条记录,
最后验证通过之后提交审核,大约十几分钟就可以了, 下载证书。
因为官方没有node服务版本的示例,所以只能下载其他版本的,自行配置。
2 安装依赖
npm install koa-sslify --save
在app.js中 引入
const sslify = require('koa-sslify').default;
app.use(sslify());
如图:
接下来打开 bin 目录下 www
引入以下模块
var https = require('https');
var path = require('path');
var fs = require('fs');
// SSL options
var options = {
key: fs.readFileSync(path.join(__dirname, './xxxx.key')), //ssl文件路径 第一步下载下来的证书文件
cert: fs.readFileSync(path.join(__dirname, './xxx.pem')) //ssl文件路径 第一步下载下来的证书文件
};
...
// 创建https 服务
var httpsServer = https.createServer(options, app.callback());
...
httpsServer.listen(443); // 默认监听443
httpsServer.on('error', onError);
httpsServer.on('listening', onListening);
如图
然后没了。。 http 和 https 服务并存,本地可测试。
但是你测试出来一定会如这样
因为你申请的ssl证书必须是指定域名才会有效,所以在本地 localhost会失效。
部署之后就没问题了。
作者 HoChine
2019 年 06月 01日