Node.js搭建Https服务过程详解

 更新时间:2023年08月28日 11:05:37   作者:凌览  
这篇文章主要为大家介绍了Node.js搭建Https服务过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Node.js开启Http服务

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证书
  • 下载某些平台提供的免费/付费的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.js搭建Https服务过程详解的详细内容,更多关于Node.js搭建Https服务的资料请关注脚本之家其它相关文章!

相关文章

  • Node.js一行代码实现静态文件服务器的方法步骤

    Node.js一行代码实现静态文件服务器的方法步骤

    这篇文章主要介绍了Node.js一行代码实现静态文件服务器的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • 浅谈Node.js:fs文件系统模块

    浅谈Node.js:fs文件系统模块

    本篇文章主要介绍了Node.js:fs文件系统模块,具有一定的参考价值,有需要的可以了解一下。
    2016-12-12
  • NodeJs下的测试框架Mocha的简单介绍

    NodeJs下的测试框架Mocha的简单介绍

    本篇文章主要介绍了NodeJs下的测试框架Mocha的简单介绍,是目前最为流行的javascript框架之一,在本文我们重点介绍它在NodeJs上的使用。有兴趣的可以了解一下。
    2017-02-02
  • Egret引擎开发指南之创建项目

    Egret引擎开发指南之创建项目

    Egret Engine(白鹭引擎)是一款使用TypeScript语言构建的开源免费的移动游戏引擎。白鹭引擎的核心定位是开放,高效,优雅。通过它,你可以快速地创建HTML5类型的移动游戏,也可以将游戏项目编译输出成为目标移动平台的原生游戏应用。
    2014-09-09
  • 利用Node.js检测端口是否被占用的方法

    利用Node.js检测端口是否被占用的方法

    这篇文章主要给大家介绍了关于利用Node.js检测端口是否被占用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-12-12
  • Linux 安装nodejs环境及路径配置详细步骤

    Linux 安装nodejs环境及路径配置详细步骤

    大家都知道linux安装nodejs有两种比较常用的方法,一种解压即可用的方法操作比较简便,另一种方法通过编译来安装,本文重点给大家讲解第一种方法,感兴趣的朋友跟随小编一起看看吧
    2021-11-11
  • 详解node.js搭建代理服务器请求数据

    详解node.js搭建代理服务器请求数据

    本篇文章主要介绍了详解node.js搭建代理服务器请求数据,具有一定的参考价值,有兴趣的可以了解一下。
    2017-04-04
  • Node.js如何实现MySQL数据库连接池

    Node.js如何实现MySQL数据库连接池

    文章介绍了Node.js中实现MySQL数据库连接池的方法,通过预先建立和管理数据库连接对象,优化数据库连接的使用效率
    2024-11-11
  • node.js中的fs.lstat方法使用说明

    node.js中的fs.lstat方法使用说明

    这篇文章主要介绍了node.js中的fs.lstat方法使用说明,本文介绍了fs.lstat的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • Node.js服务器环境下使用Mock.js拦截AJAX请求的教程

    Node.js服务器环境下使用Mock.js拦截AJAX请求的教程

    Mock.js这个JavaScript库最常见的用法便是被用来拦截AJAX请求,well,这里我们就来看一下Node.js服务器环境下使用Mock.js拦截AJAX请求的教程:
    2016-05-05

最新评论