Open jackieli123723 opened 6 years ago
var options = {
key: fs.readFileSync('./okcerts/mall.lilidong.cn.key'),
cert: fs.readFileSync('./okcerts/mall.chained.crt')
}
https.createServer(options, app).listen(PORT, HOST, null, function() {
console.log('Server listening on port %d in %s mode', this.address().port, app.settings.env);
console.log(`https代码部署成功访问端口https://localhost:${this.address().port}`);
});
[root@ali-ly-basic-data-118 src]# cat server.js
'use strict'
const fs = require('fs')
const path = require('path')
// eslint-disable-next-line
const http2 = require('http2')
const helper = require('./helper')
const PORT = process.env.PORT || 8511
const PUBLIC_PATH = path.join(__dirname, '../public')
const publicFiles = helper.getFiles(PUBLIC_PATH)
//创建HTTP2服务器
const server = http2.createSecureServer({
cert: fs.readFileSync(path.join(__dirname, '../ssl/cert.pem')),
key: fs.readFileSync(path.join(__dirname, '../ssl/key.pem'))
}, onRequest)
// Request 事件
function onRequest (req, res) {
// 路径指向 index.html
const reqPath = req.url === '/' ? '/index.html' : req.url
//获取html资源
const file = publicFiles.get(reqPath)
// 文件不存在
if (!file) {
res.statusCode = 404
res.end()
return
}
res.stream.respondWithFD(file.fileDescriptor, file.headers)
}
server.listen(PORT, (err) => {
console.log('监听服务器启动=====\n')
if (err) {
console.error(err)
return
}
console.log(`Server listening on ${PORT}`)
})
node-http升级到https
http访问 http://mall.lilidong.cn
下面进入正题 1、配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块–with-http_ssl_module和–with-http_gzip_static_module,命令查看是否有相应模块,没有需要重新编译,默认一键安装包都带了。
nginx -V 2、防火墙开启https协议默认端口443
3、利用脚本快速获取Let’s Encrypt SSL证书
4、配置letsencrypt.conf文件
5、执行脚本生成需要的key文件
6、打开网站配置文件,修改和添加红色部分
7、每月1号定时自动续期,因为这个证书只有90天有效期。
二、防火墙开启https协议默认端口443