nodejs express配置自签名https服务器步骤详解

这次给大家带来nodejs express配置自签名https服务器步骤详解,nodejs express配置自签名https服务器的注意事项有哪些,下面就是实战案例,一起来看一下。

在nodejs中使用express来搭建框架可以说是非常的简单方便,但是一般默认创建的都是http服务器,也就是只能通过http协议进行访问。如今https已经是发展趋势,我们应该顺应时代的潮流。在本篇文章中,我们将会来使用自签名的方式创建证书,然后使用express框架来搭建https服务器,最后让浏览器或者注意事项https协议进行访问。

首先我们要生成证书文件:

(1)生成私钥key文件(下面的pathway表示你要保存的文件路径位置)
 

openssl genrsa 1024 > /pathway/private.pem

登录后复制

(2)通过上面生成的私钥文件生成CSR证书签名

 openssl req -new -key /pathway/private.pem -out csr.pem

登录后复制

(3)通过上述私钥文件和CSR证书签名生成证书文件

复制代码 代码如下:

openssl x509 -req -days 365 -in csr.pem -signkey /pathway/private.pem -out /pathway/file.crt

此时生成的三个文件如下:

nodejs express配置自签名https服务器步骤详解

此时把这三个文件拷贝到你的nodejs项目目录下,比如我直接在项目根目录下新建certificate文件夹,然后放入三个文件:

nodejs express配置自签名https服务器步骤详解

 完成以上步骤后,修改项目的启动文件,我这里的启动文件是app.js,或者有人是server.js,以下代码实现都一样:

var express = require('express'); // 项目服务端使用express框架 var app = express(); var path = require('path'); var fs = require('fs');  //使用nodejs自带的http、https模块 var http = require('http'); var https = require('https');  //根据项目的路径导入生成的证书文件 var privateKey = fs.readFileSync(path.join(dirname, './certificate/private.pem'), 'utf8'); var certificate = fs.readFileSync(path.join(dirname, './certificate/file.crt'), 'utf8'); var credentials = {key: privateKey, cert: certificate};  var httpServer = http.createServer(app); var httpsServer = https.createServer(credentials, app);  //可以分别设置http、https的访问端口号 var PORT = 8000; var SSLPORT = 8001;  //创建http服务器 httpServer.listen(PORT, function() {   console.log('HTTP Server is running on: http://localhost:%s', PORT); });  //创建https服务器 httpsServer.listen(SSLPORT, function() {   console.log('HTTPS Server is running on: https://localhost:%s', SSLPORT); });  //可以根据请求判断是http还是https app.get('/', function (req, res) {   if(req.protocol === 'https') {     res.status(200).send('This is https visit!');   }   else {     res.status(200).send('This is http visit!');   } });

登录后复制

代码实现完成后,启动app.js脚本,可以使用”node app.js”命令来启动,或者在其他IDE中run, 然后在浏览器中访问(注意express不是系统内置模块,需要通过npm安装):

http访问:

nodejs express配置自签名https服务器步骤详解

https访问:

nodejs express配置自签名https服务器步骤详解

可以看到我们已经成功使用https来访问我们的服务器,但是Chrome浏览器却显示红色的Not Secure,这是因为这个证书是我们自建的,没有经过第三方机构验证,所以会出现警告的提示。后续博客我们会介绍如何申请经过认证的证书。

在Chrome浏览器中打开开发者模式,在安全Security页中可以看到当前页面的证书信息,如下所示:

nodejs express配置自签名https服务器步骤详解     

点击“View certificate”则可以看到证书的详情:

nodejs express配置自签名https服务器步骤详解

展开detail则可以看到我们创建证书的时候输入的各项证书信息。

同时我们也可以使用Postman来模拟客户端请求(实际开发中,服务端同学可以把证书发给客户端同学,经过简单配置就能实现https通信了):

http请求:

nodejs express配置自签名https服务器步骤详解

https请求:

nodejs express配置自签名https服务器步骤详解

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

注意事项

注意事项

注意事项

以上就是nodejs express配置自签名https服务器步骤详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2758389.html

(0)
上一篇 2025年3月8日 08:11:09
下一篇 2025年2月27日 02:34:40

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 通过构造AJAX参数实现表单元素JSON相互转换

    这篇文章主要介绍了通过构造ajax参数实现表单元素json相互转换 的相关介绍,需要的朋友可以参考下 ajax提交服务器数据, 整理一下转换方法。 HTML: 登录后复制 1.表单元素转QueryString var q = $(‘#fm,…

    编程技术 2025年3月8日
    200
  • SpringMVC环境下实现的Ajax异步请求JSON格式数据

    这篇文章主要介绍了springmvc环境下实现的ajax异步请求json格式数据的相关资料,需要的朋友可以参考下 一 环境搭建 首先是常规的spring mvc环境搭建,不用多说,需要注意的是,这里需要引入jackson相关jar包,然后在…

    2025年3月8日
    200
  • 浅析json与jsonp区别及通过ajax获得json数据后格式的转换

    一言以蔽之,json返回的是一串数据;而jsonp返回的是脚本代码(包含一个函数调用);接下来通过本文给大家介绍json与jsonp区别及通过ajax获得json数据后格式的转换,需要的朋友参考下  有关json与jsonp的区别(json…

    编程技术 2025年3月8日
    200
  • js原型使用详解

    这次给大家带来js原型使用详解,js原型使用的注意事项有哪些,下面就是实战案例,一起来看一下。 什么是原型? 在 javascript 中原形是一个对象,通过原形可以实现属性的继承。 let personBase = new Object(…

    2025年3月8日
    200
  • JS中常用到数组操作

    改变原始数组的操作方法: push:向数组末尾添加元素,并返回新的长度 pop:删除最后一个并返回删除的元素 unshift:向数组开头添加元素,并返回新的长度 shift:将第一个元素删除并且返回删除元素,空即为undefined rev…

    编程技术 2025年3月8日
    200
  • js的数组原型方法使用详解

    这次给大家带来js的数组原型方法使用详解,js的数组原型方法使用注意事项有哪些,下面就是实战案例,一起来看一下。 push会改变原数组的,返回值是改变后的数组长度 var arr = [1,2,3];var length = arr.pus…

    编程技术 2025年3月8日
    200
  • JS中使用接口步骤详解

    这次给大家带来JS中使用接口步骤详解,JS中使用接口的注意事项有哪些,下面就是实战案例,一起来看一下。 这篇是 js-interface 的 README,虽然并不是很复杂的一个东西,如果有人看的话我就写写源码思路了 ORZ 介绍 在做一个…

    编程技术 2025年3月8日
    200
  • JS中的JSON和Math使用案例分析

    这次给大家带来JS中的JSON和Math使用案例分析,JS中的JSON和Math使用的注意事项有哪些,下面就是实战案例,一起来看一下。 1.JSON JSON: 对象格式的字符串轻量的数据传输格式 登录后复制登录后复制 注意事项:  键名 …

    2025年3月8日
    200
  • 比较Ajax的三种实现及JSON解析

    本文给大家介绍ajax的三种实现及json解析的相关资料,对本文感兴趣的朋友参考下 本文主要是比较三种实现Ajax的方式,为以后的学习开个头。 准备: 1、  prototype.js2、  jquery1.3.2.min.js3、  js…

    编程技术 2025年3月8日
    200
  • js与jQuery终止正在发送的ajax请求的方法

    这篇文章主要介绍了js与jquery终止正在发送的ajax请求的方法,实例分析了jquery与javascript终止ajax请求的实现技巧与相关注意事项,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了js与jQuery终止正在…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论