mac制作ssl证书|生成自签名证书,nodejs+express在mac上搭建https+wss(websocket)服务器

这篇具有很好参考价值的文章主要介绍了mac制作ssl证书|生成自签名证书,nodejs+express在mac上搭建https+wss(websocket)服务器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

注意

mac 自带 openssl 所以没必要像 windows 一样先安装 openssl,直接生成即可

生成 ssl/自签名 证书

生成 key

# 生成rsa私钥,des3算法,server_ssl.key是秘钥文件名 1024位强度
openssl genrsa -des3 -out server_ssl.key 1024

让输入两次密码,随便,但是两次得是一样的

移除密码

# 这里执行完上一步的密码即已经被移除了
openssl rsa -in server_ssl.key -out server_ssl.key

生成 csr

# -new 执行生成新的证书请求
# -key 指定密钥
openssl req -new -key server_ssl.key -out server_ssl.csr
  • Country Name (2 letter code) [国家]:CN

  • State or Province Name (full name) [省份]:Beijing

  • Locality Name (eg, city) [城市]:Beijing

  • Organization Name (eg, company) [组织/公司]:zgp

  • Organizational Unit Name (eg, section) [部门/单位]:zgp

  • Common Name (eg, fully qualified host name) [域名]:test.zgp.cn

  • Email Address [邮箱]:demo@outlook.com

  • Please enter the following ‘extra’ attributes
    to be sent with your certificate request
    A challenge password [上一步已经移除,直接回车即可]:

生成证书

# x509 根据现有的证书请求生成自签名根证书
# -days 设置证书的有效天数
# -in 指定输入证书请求文件
openssl x509 -req -days 365 -in server_ssl.csr -signkey server_ssl.key -out server_ssl.crt

执行过程截图

mac制作ssl证书|生成自签名证书,nodejs+express在mac上搭建https+wss(websocket)服务器,nodejs,https,macos,ssl,express,websocket,node.js

创建 nodejs 的 https/wss 服务

创建 express 项目就不多说了,自行查看:nodejs+express自动生成项目
express 文档地址https://www.expressjs.com.cn/starter/generator.html

修改的 bin/www 文件

#!/usr/bin/env node

/**
 * Module dependencies.
 */

var app = require('../app');
var debug = require('debug')('express-io:server');
const fs = require('fs');
const path = require('path');
// var http = require('http');
var https = require('https');
// 引入 socket.io
const { Server } = require('socket.io')
/**
 * Get port from environment and store in Express.
 */

var port = normalizePort(process.env.PORT || '3001');
app.set('port', port);

/**
 * Create HTTPS server.
 * 加上 ssl 证书
 */
const httpsOption = {
  key: fs.readFileSync(path.resolve(__dirname, "../certificate/server_ssl.key")),
  cert: fs.readFileSync(path.resolve(__dirname, "../certificate/server_ssl.crt"))
}
var server = https.createServer(httpsOption, app);
// 创建 websocket 服务器代码
const io = new Server(server, {
        cors: {
            origin: "*"
        }
    });
    // 客户端连接成功会输出连接 id 以及 客户端传惨 query
    io.on('connection', (socket)=>{
        console.log(socket.id)
        console.log(socket.handshake.query)
    })
/**
 * Listen on provided port, on all network interfaces.
 */

server.listen(port, () => {
  console.log(`server listening on port: ${port}`)
});
server.on('error', onError);
server.on('listening', onListening);

/**
 * Normalize a port into a number, string, or false.
 */

function normalizePort(val) {
  var port = parseInt(val, 10);

  if (isNaN(port)) {
    // named pipe
    return val;
  }

  if (port >= 0) {
    // port number
    return port;
  }

  return false;
}

/**
 * Event listener for HTTP server "error" event.
 */

function onError(error) {
  if (error.syscall !== 'listen') {
    throw error;
  }

  var bind = typeof port === 'string'
    ? 'Pipe ' + port
    : 'Port ' + port;

  // handle specific listen errors with friendly messages
  switch (error.code) {
    case 'EACCES':
      console.error(bind + ' requires elevated privileges');
      process.exit(1);
      break;
    case 'EADDRINUSE':
      console.error(bind + ' is already in use');
      process.exit(1);
      break;
    default:
      throw error;
  }
}

/**
 * Event listener for HTTP server "listening" event.
 */

function onListening() {
  var addr = server.address();
  var bind = typeof addr === 'string'
    ? 'pipe ' + addr
    : 'port ' + addr.port;
  debug('Listening on ' + bind);
}

创建个客户端测试

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.socket.io/4.4.1/socket.io.min.js" integrity="sha384-fKnu0iswBIqkjxrhQCTZ7qlLHOFEgNkRmK2vaO/LbTZSXdJfAu6ewRBdwHPhBo/H" crossorigin="anonymous"></script>
    <title>Document</title>
</head>
<body>
    <script>
        (()=>{
           const socket = io('wss://localhost:3001', {
                autoConnect: false,
                query: {
                    openid: 'sajfklsadjflkdsa'
                }
           })
           socket.connect()
           socket.on("connect", ()=>{
            console.log(socket.id)
           })
           socket.io.on('close', ()=>{
            console.log('close');
           })
        })()
    </script>
</body>
</html>

mac制作ssl证书|生成自签名证书,nodejs+express在mac上搭建https+wss(websocket)服务器,nodejs,https,macos,ssl,express,websocket,node.js

mac制作ssl证书|生成自签名证书,nodejs+express在mac上搭建https+wss(websocket)服务器,nodejs,https,macos,ssl,express,websocket,node.js文章来源地址https://www.toymoban.com/news/detail-698515.html

到了这里,关于mac制作ssl证书|生成自签名证书,nodejs+express在mac上搭建https+wss(websocket)服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx实现自签名SSL证书生成与配置

    目录 一、Nginx实现自签名SSL证书生成与配置 1、名词介绍 2、生成私钥 3、生成公钥 4、生成解密的私钥key  5、签名生成证书 6、配置证书并验证 7、加密私钥的报错 1、名词介绍 ①key 私钥  = 明文--自己生成(genrsa ) ②csr 公钥  = 由私钥生成 ③crt  证书  = 公钥 + 签名(自签

    2024年02月15日
    浏览(50)
  • 安卓APP证书Android签名证书.keystore文件制作生成

    将app发布到应用宝时,而上传安装包时提示如下图时, 但您或您的团队从未上传该应用,您可以通过认领功能认领应用。认领成功后该应用会自动转入您的账户下,同时保留应用全部数据,您可以在应用管理中进行管理。 1.点击认领应用 ,确认需认领应用的包名是否是你的

    2024年02月02日
    浏览(47)
  • Nginx中实现自签名SSL证书生成与配置

    (1)生成私钥(Private Key):使用 OpenSSL 工具生成一个私钥文件,用于加密和解密传输的数据。 (2)生成证书签名请求(Certificate Signing Request,CSR):使用 OpenSSL 工具生成一个 CSR 文件,其中包含你的服务器公钥和相关的信息,以便用于生成证书。 (3)自签名证书生成:使

    2024年02月09日
    浏览(46)
  • 可运营的SSL证书在线生成系统源码,附带图文搭建教程

    安装教程 运行环境 PHP8.0.2-8.2最好选用8.0 Nginx1.22.1版本 Mysql5.7 伪静态设置为Thinkphp 后台账号admin   密码123456 系统使用API申请地址:https://www.sslprogen.com/

    2024年01月20日
    浏览(57)
  • 自签名免费(SSL)私有证书

    注意: 执行后需要输入密码,然后依次输入国家,地区,城市,组织,组织单位,Common Name和Email。其中Common Name,可以写自己的名字或者域名,如果要支持https,Common Name应该与域名保持一致,否则会引起浏览器警告。 注意: 生成rsa私钥,des3算法,2048位强度,server.key是秘钥

    2024年02月08日
    浏览(39)
  • 理解HTTPS/TLS/SSL(一)基础概念+配置本地自签名证书

    对于HTTPS、TLS、SSL相关的概念,平时也是时常接触到。看过几篇文章之后,总以为自己真正了解了,实际上并没有,准备补充一下这一部分的基础知识,对于更深层次的东西,例如各种标准的解读,则不打算深入。 我们都知道HTTP是不安全的,以及为什么不安全。但是为了更直

    2024年02月11日
    浏览(51)
  • 安卓App生成签名证书,uniapp生成自有证书打包

    uniapp安卓打包生成自有证书,签名。从HBuilderX3.2.0及以上版本开始支持服务器生成证书(推荐这种方法),服务器生成一键操作,比较简单。自己一步一步操作相对还是比较麻烦的。 服务器生成的证书绑定应用appid,即每个appid会各自生成证书 服务器生成的证书会自动填写证

    2023年04月08日
    浏览(34)
  • 【密码学】使用mkcert安装CA、自签名ssl证书,配置nginx的https 证书笔记

    CA(Certificate Authority,证书授权)是由认证机构服务者签发,是数字签名的技术基础保障,也是网上实体身份的证明,能够证明某一实体的身份及其公钥的合法性,证明该实体与公钥二者之间的匹配关系。 在电子商务系统中,所有实体的证书都是由证书授权中心即CA中心颁发并签

    2024年02月03日
    浏览(52)
  • 【SSL】ssl证书简介、ssl证书生成工具与ssl证书生成步骤

    SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。 SSL证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。 SSL证书通过在客户端浏览

    2024年02月10日
    浏览(46)
  • 内网环境下nginx使用自签名ssl证书配置https请求

    一、安装Openssl nginx有openssl 命令,没有的自行百度,我配置的nginx是存在的所以没查这部分 二、生成密钥 可以在本地生成然后把文件拷贝到服务器,也可以直接在服务器指定目录生成,我选择的后者。 应该是哪个目录都可以,只要在nginx.conf文件中引入正确地址就可以 我的配

    2024年01月21日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包