您好,欢迎访问一九零五行业门户网

怎么利用Node搭建Https服务

怎么利用node搭建https服务?下面本篇文章给大家介绍一下node.js搭建https服务的方法,希望对大家有所帮助!
node.js用于做小程序后台服务,域名要求必须是https协议。在node.js开启http服务是非常简单的,如下:
const http = require('http');const server = http.createserver((req, res) => { res.writehead(200, { 'content-type': 'text/html;charset=utf8' }); res.end('访问成功')});server.listen(8080, () => { console.log('服务已开启');})
如果想使用https服务需要两步:1. 需要有一份ssl证书;2. 使用node.js自身的https模块。
ssl证书获取ssl证书方式有两种:
自己借助openssl工具生成ssl证书 【相关教程推荐:nodejs视频教程、编程教学】下载某些平台提供的免费/付费的ssl证书(推荐)我是使用某云平台提供免费的证书
点击下载后选择服务器类型
下载后的文件分别是以.key、.pem为后缀,其中.key文件是base64加密私钥,.pem文件是base64加密的证书
使用node.js自身的https模块开启一个服务相较http,它多了一个options参数。
const https = require('https');const fs = require('fs');const path = require('path');const options = { key: fs.readfilesync(path.join(__dirname, './ssl/9499016_www.linglan01.cn.key')), cert: fs.readfilesync(path.join(__dirname, './ssl/9499016_www.linglan01.cn.pem')),};const server = https.createserver(options, (req, res) => { res.writehead(200, { 'content-type': 'text/html;charset=utf8' }); res.end('访问成功')});server.listen(8080, () => { console.log('服务已开启');})
由于ssl证书我绑定的域名是www.linglan01.cn ,当我使用https://127.0.0.1:8080 访问服务时与绑定的域名不相符,它会被拦截访问,仅允许 www.linglan01.cn 访问。
使用域名为www.linglan01.cn 才能正常的访问。
使用express框架开启https工作中肯定是使用社区的express等框架进行开发,想在express等框架中开启https也非常容易,以express举例:
const https = require('https');const fs = require('fs');const path = require('path');const express = require('express')const app = express();app.get('/chat', (req, res) => { res.send('我是https')});const options = { key: fs.readfilesync(path.join(__dirname, './ssl/9499016_www.linglan01.cn.key')), cert: fs.readfilesync(path.join(__dirname, './ssl/9499016_www.linglan01.cn.pem')),};const server = https.createserver(options, app);server.listen(8080, () => { console.log('服务已开启');})
总结node.js中搭建https服务不难,node.js已经为我们提供了https模块可以快捷的完成搭建。https服务实际中仅会使用到线上环境,如果本地环境也需要,我们也可以使用openssl工具生成一个证书。
更多node相关知识,请访问:nodejs 教程!
以上就是怎么利用node搭建https服务的详细内容。
其它类似信息

推荐信息