当前位置: 首页 > news >正文

在window环境下安装openssl生成钥私、证书和签名,nodejs利用express实现ssl的https访问和测试

在生成我们自己的 SSL 证书之前,让我们创建一个简单的 Express应用程序。

要创建一个新的 Express 项目,让我们创建一个名为node-ssl -server 的目录,用终端cmd中进入node-ssl-server目录。

cd node-ssl-server

然后初始化一个新的 npm 项目

npm init --y

现在我们安装依赖项express ,为此运行此命令

npm install --save express

现在我们在window环境下打开node-ssl-server文件夹就可以看到一个package.json文件,在scripts{}中添加"start":“node index.js”

“scripts”: {
“start”:“node index.js”
},

现在在node-ssl-server创建index.js文件,写入如下内容

const express=require('express');
const https=require('https');
const fs=require('fs');
const path=require('path');
const app=express();
app.use('/',(req,res,next)=>{res.send('现在是ssl服务');
});
const options={key:'',cert:''
};
const sslServer=https.createServer(options,app);
sslServer.listen(1337,()=>{console.log('服务器开始监听1337端口');
});

现在来生成 SSL 证书
我们在Node-ssl-server目录下再创建一个目录来将证书存储在我们的应用程序文件夹中。
创建cert目录,并进入cert目录

mkdir cert
cd cert

要生成 SSL 证书,我们需要按照以下步骤操作:

  • 生成私钥
  • 使用私钥创建 CSR(证书签名请求)
  • 从 CSR 生成 SSL 证书

先在我们本地计算机安装openssl
在此网址下载一个window64的openssl :https://slproweb.com/products/Win32OpenSSL.html

下载后直接安装,在安装的时候要选第二项,如下图:
在这里插入图片描述

接下来就是配置环境变量,右键点我的电脑——>属性——>高级系统设置——>环境变量——>系统环境
在这里插入图片描述
将你安装openssl的位置直接填写进去

cmd打开命令框,执行命令:openssl version,如下图所示,如果可以给出OpenSSL的版本即可证明已成功安装并成功配置环境变量。
在这里插入图片描述

安装完成后,我们cmd进入到刚才创建的cert文件夹,运行如下命令来生成私钥:

openssl genrsa -out key.pem

这时你可以在cert文件夹中看到key.pem文件已经生成

生成证书csr
由于我们是自己的颁发证书,因此我们需要使用 CSR 来生成我们的证书。为此,我们需要运行以下命令。

openssl req -new -key key.pem -out csr.pem

运行此命令后,它会询问几个问题,如下所示:

现在将提示您输入将包含在您的信息中的信息 CSR。 此信息也称为 专有名称或 DN。 该 通用名称 提交您的SSL.com字段时, CSR,但其他均为可选。 如果您想跳过可选项目,只需键入 进入 当它出现时:

国家的名字 (可选)包含两个字母 国家代码. //你可以填入CN
地区名称 字段(可选)适用于您所在的城市或城镇。// 你可以填入BJ
组织名称 字段(可选)是您公司或组织的名称。 //这个可以随便写
通用名称 字段(必填)用于 完全合格的域名(FQDN) 该证书将保护的网站。 //这里是写域名,如果你用phpstudy可以写一个,如www.xuenodejs.online
电子邮件 (可选) //写一个你的电子邮件
挑战密码 字段是可选的,也可以跳过。

完成此过程后,您将返回到命令提示符。 您不会收到任何有关您的 CSR 已成功创建。

回到我们的cert文件夹,你将看到生成了一个csr.pem文件

生成 SSL 证书
现在进行最后的步骤,我们需要使用key.pem和csr.pem文件来生成我们的 SSL 证书。

让我们运行下面的命令来生成它。

openssl x509 -req -days 365 -in csr.pem -signkey key.pem -out cert.pem

注意:我们使用 x509,因为它是定义公钥证书格式的标准。我们将证书的有效期设置为 365 天。

运行上述命令后,它将证书保存在 cert 文件夹内的cert.pem文件中。 现在您可以删除csr.pem文件,也可以保留它。

在 Express 中集成 SSL 证书

打开我们的index.js文件,在options中写入如下代码:

const options = {
key:fs.readFileSync(path.join(__dirname,'./cert/key.pem')),
cert:fs.readFileSync(path.join(__dirname,'./cert/cert.pem'))
}

完成后并保存,运行服务器

npm start

当然你也可以进入node-ssl-server目录运行index.js是一样的

node index.js

您可以通过从这个 URL 访问它来检查 HTTPS 是否正常工作:
https://localhost:1337

如果你是phpstudy在做测试,你可以把网站目录设置成node-ssl-server, 然后把私钥和证书导入到443里面
用https://www.xuenodejs.online:1337访问是一样。

这两种浏览器访问都会告诉你不安全,没关系,我们只是做测试,能用https访问就行,这样我就可以编辑代码用https访问了

http://www.lryc.cn/news/507251.html

相关文章:

  • Redis 最佳实践
  • 网站灰度发布?Tomcat的8005、8009、8080三个端口的作用什么是CDNLVS、Nginx和Haproxy的优缺点服务器无法开机时
  • 从客户跟进到库存管理:看板工具赋能新能源汽车销售
  • 算法时间空间复杂度的计算
  • 人才画像系统如何支撑企业的人才战略落地
  • [数据结构] 链表
  • 三格电子——新品IE103转ModbusTCP网关
  • 遥感影像目标检测:从CNN(Faster-RCNN)到Transformer(DETR
  • 深入详解神经网络基础知识——理解前馈神经网络( FNN)、卷积神经网络(CNN)和循环神经网络(RNN)等概念及应用
  • react 项目打包二级目 使用BrowserRouter 解决页面刷新404 找不到路由
  • EasyPlayer.js播放器Web播放H.265要兼顾哪些方面?
  • 使用 acme.sh 申请域名 SSL/TLS 证书完整指南
  • 睡岗和玩手机数据集,4653张原始图,支持YOLO,VOC XML,COCO JSON格式的标注
  • [Unity] 【VR】【游戏开发】在VR中使用New Input System获取按键值的完整教程
  • 网络安全渗透有什么常见的漏洞吗?
  • 2024年合肥师范学院信息安全小组内部选拔赛(c211)WP
  • GESP CCF C++八级编程等级考试认证真题 2024年12月
  • GlusterFS 部署全攻略:详细步骤与要点解析(上)
  • 充分利用 AIStor 的网络配置
  • 算法题(10):好数
  • 使用二分查找法找出给定点距离给定点集合距离最近的点
  • 国标GB28181协议平台Liveweb:搭建建筑工地无线视频联网监控系统方案
  • 构建MacOS应用小白教程(打包 签名 公证 上架)
  • Nginx 双向链表 ngx_queue_t
  • 【vue】npm install 报错 python2 Error: not found: python2
  • CS 144 check3: the TCP sender
  • Deepin/Linux clash TUN模式不起作用,因网关导致的问题的解决方案。
  • Tomato 靶机(通关攻略)
  • 服务器被入侵登录不上怎么办?
  • 达梦官方工具 SQLark数据迁移(oracle->达梦数据库)