首页 > 编程语言 >node基于自签名证书搭建https服务

node基于自签名证书搭建https服务

时间:2024-06-06 10:02:30浏览次数:25  
标签:node const key app express https root 搭建

原文链接: https://www.cnblogs.com/yalong/p/18232314

描述

基于node.js 搭建一个https静态资源服务,由于只是本地用,所以使用自签名的ssl证书就行了
我用的mac 系统,系统自带有openssl的,其他系统如果没有请先安装

使用Openssl生成CA证书

  1. 生成 root 密钥:
openssl genrsa -out root.key 4096

  1. 生成 root 证书:
openssl req -new -x509 -days 1000 -key root.key -out root.crt

注意: 输入相关数据,不能全部都空着不写,可以随便写,我这里都写成 aa 也是可以的

  1. 验证 root 证书:
openssl x509 -text -in root.crt -noout

验证成功,如下图所示:

最终生成两个文件 root.key root.crt, 如下图所示:

使用Express搭建Https服务

主要代码如下:

const express = require('express')
const app = require("express")()
const fs = require("fs")
const path = require('path');

// 私钥跟证书
const httpsOption = {
  key: fs.readFileSync(path.join(__dirname, './ssl/root.key')),
  cert: fs.readFileSync(path.join(__dirname, './ssl/root.crt'))
}

// 创建https
const https = require("https").Server(httpsOption, app)
// 端口
const port = 443
// app.use(express.static(path.join(__dirname, 'public')));
// app.use('/static', express.static('public'))
app.use(express.static('public'));

// 定义根路由
app.get('/', (req, res) => {
  res.send("<h1>你好啊,https</h1>")
})

https.listen(port, () => {
  console.log(`服务启动成功!`)
  console.log(`https://localhost:${port}`)
})

https服务使用443端口就不用在url里写上端口号了,不过启动的时候,要加上sudo, 我demo里的启动方式就是 sudo npm run start

打开浏览器访问一个图片如下图所示

demo代码地址: https://github.com/YalongYan/node-express-https

标签:node,const,key,app,express,https,root,搭建
From: https://www.cnblogs.com/yalong/p/18232314

相关文章

  • hive-3.1.2分布式搭建
    hive-3.1.2分布式搭建文档谷歌浏览器下载网址:GoogleChrome–Downloadthefast,securebrowserfromGoogle华为云镜像站:https://mirrors.huaweicloud.com/home1、上传解压配置环境变量#1、解压tar-zxvfapache-hive-3.1.2-bin.tar.gz-C/usr/local/s......
  • k8s配置节点亲和性yaml示例:根据节点名称来配置节点亲和性(node affinity)
    在Kubernetes中,根据节点名称来配置节点亲和性(nodeaffinity)通常不是直接通过节点名称实现的,而是通过为节点添加特定的标签,然后在Pod的亲和性规则中匹配这些标签。不过,有一种特殊情况是使用NodeAffinity的nodeSelectorTerms中的matchExpressions,通过设置operator为In并使用......
  • mind-sever 搭建环境 readme
    modelfoundry-serverinstalldepsswagWeneedswagtogenerategoinstallgithub.com/swaggo/swag/cmd/swag@latestdockerfollowthedocscomposefollowthedocslocal-devBeforestarting:installdockercomposegenerateyourgithubtokenThenyoucanst......
  • node.js + mysql实现基本的增删改查功能(保姆级教程---1)
    node.js+mysql实现基本的增删改查(保姆级教程---1)工具:sqlyog可视化工具,vscode,nodejs环境(我的node.js版本号是18.16.0)前提条件:电脑上要有node.js、npm、mysql服务器、可视化工具(navicat或sqlyog都行)步骤:新建文件夹node-mysql-cruid(根目录),终端打开该目录初始化项目:npm......
  • node.js + mysql实现基本的增删改查功能(保姆级教程---2优化版)
    node.js+mysql实现基本的增删改查(保姆级教程---2优化版)上一个实现对增删改查功能都写在同一个文件里,代码过于冗余,我认为可以优化,分开写在不同文件里面,使得更加直观。废话不多说,直接进入主题:对之前的代码进行抽离:db.js文件(用于数据库的连接,并导出连接供其他模块使用):......
  • 【教程】使用 Tailchat 搭建团队内部聊天平台,Slack 的下一个替代品!
    前言多人协作,私有聊天一直是团队协作的关键点,现在有很多专注于团队协作的应用和平台,比如飞书、企业微信和Slack等。这期教程将带你手把手的搭建一个在线的团队协作向聊天室,希望对你有所帮助!本期聊天室使用TailChat作为服务端,TailChat是下一代nolM(不仅仅是IM)应用程序,适......
  • 搭建高可用k8s
    搭建k8s高可用高可用只针对于api-server,需要用到nginx+keepalived,nginx提供4层负载,keepalived提供vip(虚拟IP)系统采用openEuler22.03LTS1.前期准备因为机器内存只有16G,所有我采用3master+1node主机名IPVIPmaster01192.168.200.163192.168.200.200mast......
  • 地图服务搭建
    地图服务目录必须是/opt/geoserver.tar.gz上传到/opt/解压cd/opttar-zxfgeoserver.tar.gz-C/opt/设置环境变量vi/etc/profile在文件末尾添加exportGEOSERVER_HOME=/opt/geoserver生效并验证source/etc/profileecho$GEOSERVER_HOMEcd/opt/geoserver/......
  • 心诺安 x TapData:快速搭建云中数仓,助力电商企业实施“以用户为中心的”精细化运营
    使用TapData,化繁为简,摆脱手动搭建、维护数据管道的诸多烦扰,轻量代替OGG、DSG等同步工具,「CDC+流处理+数据集成」组合拳,加速仓内数据流转,帮助企业将真正具有业务价值的数据作用到实处,将“实时数仓”方法论落进现实。TapData持续迭代产品能力,优化用户体验的同时,也在不断探......
  • Ubuntu server 24 (Linux) 安装部署smartdns 搭建智能DNS服务器
    SmartDNS是推荐本地运行的DNS服务器,SmartDNS接受本地客户端的DNS查询请求,从多个上游DNS服务器获取DNS查询结果,并将访问速度最快的结果返回给客户端,提高网络访问速度和准确性。支持指定域名IP地址,达到禁止过滤的效果。一安装smartdns1 关闭Ubuntu自带dns解析systemd-resolv......