在PC上安装OpenSSL,生成证书

news2024/11/8 14:18:55

文章目录

  • 一.在编程 PC 上安装 OpenSSL
    • 1. 下载安装 OpenSSL
    • 2.生成CA认证
    • 3. 生成 Broker 证书
    • 4. 生成各个 Client 的证书

一.在编程 PC 上安装 OpenSSL

为了使用带 TLS 安全证书的 ADS Over MQTT,在 MQTT 的 Server 和 Client 侧都需要证书以进行安全通信,避免窃听,同时确认另一端连接者的身份。 OpenSSL 就是一个开放的制作签发安全证书的工具。

1. 下载安装 OpenSSL

  1. 从 OpenSSL 官网可以下载该工具。OpenSSL官网没有提供windows版本的安装包,可以选择其他开源平台提供的工具。下载地址。
    在这里插入图片描述

  2. 双击下载好的安装包
    在这里插入图片描述

  3. 选择accept,点击Next
    在这里插入图片描述

  4. 选择安装位置,点击Next
    在这里插入图片描述

  5. 选择启动菜单目录,点击Next
    在这里插入图片描述

  6. 选择Dll保存地址,点击Next
    在这里插入图片描述

  7. 选择Install
    在这里插入图片描述

  8. 等待安装完成
    在这里插入图片描述

  9. 选择不捐赠,点击Finish完成安装
    在这里插入图片描述

  10. 添加系统环境变量
    在这里插入图片描述
    在这里插入图片描述

2.生成CA认证

CA 是证书的发布者, CA 可以发布其他人的证书,把 CA 的证书加入系统信任的根证书后,由CA 发布的证书也被系统所信任,所以, CA 的 key 是必须小心保护的,一般都要加密保护,并且限制为 root 权限读写。

  1. 在编程 PC 中打开 Cmd 窗体,输入以下命令行,生成自签发证书 CA.crt

    req –new –x509 –days 60 –extensions v3_ca –keyout C:\TwinCAT\3.1\CustomConfig\Certificates\CA.key –out C:\TwinCAT\3.1\CustomConfig\Certificates\CA.crt
    

    在这里插入图片描述

    生成 CA 证书的过程中,要求输入 PEM pass phrase,这是设置 CA 自签发证书的密码,用它签发其它证书的时候需要输入这个密码。设置密码后还要求 Verifying,需要再次输入刚才设置的密码。然后要求输入 Country Name 等信息,其中有意义的是 Organization 和 Common Name,便于将来证书的使用者识别这是什么机构、谁签发的证书。其它项目则可填可不填。

    • req 生成签名请求;
    • new 新的请求;
    • key 使用文件中包含的密钥;
    • out 将密钥输出到文件。
    • extensions v3_ca 按照 openssl.cnf 文件中配置的 v3_ca 项添加扩展 , v3_ca 中指定 的basicConstraints 的值为 CA:TRUE,表示该证书是颁发给 CA 机构的根证书,可以用来签发其它证书。
    • x509 输出 X509 结构而不是证书 Req

    执行该命令行的结果,在指定路径下就有了以下证书文件:
    在这里插入图片描述

3. 生成 Broker 证书

  1. 创建服务端的密钥 Key(Creating the certificate)

    genrsa -out C:\TwinCAT\3.1\CustomConfig\Certificates\broker.key 2048
    

    在这里插入图片描述
    在这里插入图片描述

    其中:

    • Genrsa ——使用 RSA 算法产生私钥, RSA 是非对称加密算法的一种
    • -out ——输出文件的路径
    • 2048 ——指定秘钥长度
  2. 用上述 Key 创建一个证书签名请求 CSR(Creating the Certificate Signing Request)

    req –out C:\TwinCAT\3.1\CustomConfig\Certificates\broker.csr –key C:\TwinCAT\3.1\CustomConfig\Certificates\broker.key –new
    

    在这里插入图片描述
    在这里插入图片描述

    注意,上图中最重要的参数是 Common Name,应该是将要使用该证书的 PC 机的名称或者 IP

    地址。对于云服务器,可以使用固定的 IP 地址。

    密码可以设置,也可以不设置。其它参数项也可以为空。

  3. 用上述 CA 和 CSR 请求签发证书

    x509 –req –in C:\TwinCAT\3.1\CustomConfig\Certificates\broker.csr –CA C:\TwinCAT\3.1\CustomConfig\Certificates\CA.crt –CAkey C:\TwinCAT\3.1\CustomConfig\Certificates\CA.key –CAcreateserial –out C:\TwinCAT\3.1\CustomConfig\Certificates\broker.crt -days 60
    

    在这里插入图片描述
    在这里插入图片描述

    在命令行中:

    • x509 ——是对证书的 X.509 标准编解码格式。
    • Cacreateserial ——表示创建证书序列号文件(即上方提到的 serial 文件),创建的序列号文件默认名称为-CA,指定的证书名称后加上.srl 后缀

4. 生成各个 Client 的证书

  1. 创建客户端的密钥 Key(Creating the XAE certificate)

    genrsa –out C:\TwinCAT\3.1\CustomConfig\Certificates\TwinCAT_XAE.key 2048
    

    在这里插入图片描述在这里插入图片描述

  2. 用上述 Key 建一个证书签名请求 CSR(Creating the Certificate Signing Request):

    req –out C:\TwinCAT\3.1\CustomConfig\Certificates\TwinCAT_XAE.csr –key C:\TwinCAT\3.1\CustomConfig\Certificates\TwinCAT_XAE.key –new
    

    在这里插入图片描述
    在这里插入图片描述

    注意,上图中最重要的参数是 Common Name,应该是将要使用该证书的 PC 机的名称。PC机名称可以通过在CMD窗口中输入ipconfig/all查看
    在这里插入图片描述

    密码可以设置,也可以不设置。其它参数项也可以为空。

  3. 上述 CA 为 CSR 请求签发证书

    x509 –req –in C:\TwinCAT\3.1\CustomConfig\Certificates\TwinCAT_XAE.csr –CA C:\TwinCAT\3.1\CustomConfig\Certificates\CA.crt –CAkey C:\TwinCAT\3.1\CustomConfig\Certificates\CA.key –CAcreateserial –out C:\TwinCAT\3.1\CustomConfig\Certificates\TwinCAT_XAE.crt –days 60
    

    在这里插入图片描述
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/185551.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安装vue-cli2和3以及创建vue2和vue3项目的步骤及区别

文章目录安装vue-cli2版本步骤1.下载vue-cli2问题1:安装Vue Cli出现EEXIST: file already exists, cmd shim ‘C:\Users\2.vue-cli2构建vue项目问题2:报错: vue-cli Failed to download repo vuejs-templates/webpack: connect ETIMEDOUT 19…

「兔了个兔」福兔贺春,纯CSS实现超精美月兔404界面(附源码)

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…

搭建一个FAQ智能问答系统/服务

FAQ智能问答系统 介绍 项目传送门:https://github.com/wzzzd/FAQ_system 构建了一个FAQ智能问答系统。 使用多种方法,实现FAQ的问题-模板匹配功能。 使用Tornado框架,部署成轻量级的Web服务应用。 整体框架如下。 流程 1.初始化流程 1.…

这福利给你要不要 — 用Python采集相亲网站女生数据

前言 俗话说学咱这行的男同志 找对象容易吗 这马上就要过完年了 是时候找找女朋友了 我在这里摸索到了个网站 或许你们可以来看看 送一波单身福利 不需要的也可以学学怎么采集这些数据呗 环境与模块 环境开发 Python 3.8Pycharm 模块使用 import parsel --> p…

类与对象的原理

前言 在JavaScript中,类的实现是基于原型继承机制的。 JavaScript中的类的一个重要特性是“动态可继承”。 类与原型 在JavaScript中,类的所有实例对象都从同一个原型对象上继承属性,因此原型对象是类的核心。 所有的类都有一个共同的根…

关系数据库——关系操作和关系完整性

文章目录一、关系操作1.基本的关系操作2.关系数据语言的分类关系代数语言关系演算语言具有关系代数和关系演算双重特点的语言二、关系的完整性1.实体完整性(Entity Integrity)实体完整性规则2.参照完整性(Referential Integrity)参照完整性规则引用关系3.用户定义的完整性(User…

WebRTC 的连接过程

经过前面几部分的铺垫,你应该对P2P音视频互动的过程有了一个大概的了解,有可能你会觉得过程比较繁琐,甚至涉及到了网络底层。但是,不要担心,WebRTC已经帮我们做了很多的事情,让我们在音视频开发时变得轻而易…

【Spring源码】22. 属性填充populateBean()详解

进入populateBean()对bean的属性进行填充,将各个属性值注入(存在其他bean的属性,则会递归初始化依赖的bean)一开始会先对传入的参数进行判断(如下图红框框中的逻辑)如果传入的BeanWrapper和RootBeanDefinit…

SpringBoot3+最新MybatisPlus+Mysql与TDengine双数据源

前言 昨天写的ideaApifox uploader插件apifox新年第一天上班就上榜了,真是不错。今天来补一篇,本来应该是在前一篇之前发的。实际上就是最新的springBoot集成最新的mybatisPlus,加双数据源:mysql、TDengine,一个关系型…

kvm虚拟机克隆

kvm虚拟机克隆链接克隆和完整克隆的区别完整克隆自动克隆手动克隆的步骤1.复制模板vm磁盘为新vm的磁盘2.复制模板vm配置文件为新vm的配置文件3.修改新vm配置文件中的信息为新vm的信息4.导入新vm的配置文件5.启动新vm链接克隆1.生成链接克隆虚拟机磁盘文件2.后续流程与手动克隆一…

【算法练习】链表中环的入口结点

题源&#xff1a;牛客描述给一个长度为n链表&#xff0c;若其中包含环&#xff0c;请找出该链表的环的入口结点&#xff0c;否则&#xff0c;返回null。数据范围&#xff1a;n≤10000&#xff0c;1<结点值<10000要求&#xff1a;空间复杂度 O(1)&#xff0c;时间复杂度O(…

1、数据库概述

文章目录1 为什么要使用数据库2 数据库与数据库管理系统2.1 数据库的相关概念2.2 数据库与数据库管理系统的关系2.3 常见的数据库管理系统排名(DBMS)2.4 常见的数据库介绍3 MySQL介绍3.1 概述3.2 MySQL发展史重大事件3.3 关于MySQL 8.03.4 为什么选择MySQL3.5 Oracle vs MySQL4…

学成在线项目开发技巧整理---第二部分

1.静态资源处理通常项目会采用动静分离架构,利用Nginx作为静态资源服务器,存放所有静态资源:#访问动态资源时,将请求负载均衡到多个服务器实例或者多个网关实例 upstream webservice{server 192.168.200.146:8080; }server {listen 80;server_name localhost;#动态资源l…

C++基础知识点整理笔记(一)

一直想尝试自己动手构建一个简单的深度学习训练框架&#xff0c;包括数据读取与处理、PS、NN前后向传播、模型save和load、不同训练方式&#xff08;offline/online .etc&#xff09;、指标监控、模型部署等部分, 去深入研究内部深度学习训练框架及horovod、byteps、pslite、te…

深刻理解状态机设计需要避免的冒险;时序电路可能存在essential hazard;处理单元里的control和datapath;竞争冒险【SV】【VLSI】

深刻理解状态机设计需要避免的冒险&#xff1b;时序电路可能存在essential hazard&#xff1b;处理单元里的control和datapath&#xff1b;竞争冒险【SV】【VLSI】0. 前言&#xff1a;时序电路可能存在essential hazard1. 理解control和datapath1.1 Datapath control2. 硬件电路…

MFC|创建一个对话框及窗体各个属性介绍

参考&#xff1a; VS2015 建立一个C的MFC简易窗体程序项目&#xff08;https://www.cnblogs.com/xingboy/p/11059721.html&#xff09; 对话框中各项属性介绍&#xff08;https://blog.csdn.net/u012350993/article/details/26093051&#xff09; MFC窗口风格 WS_style/WS_EX_s…

【Hadoop】YARN简述

文章目录1. YARN总述2. YARN调度器2.1 FIFO Scheduler2.2 Capacity Scheduler2.3 Fair Scheduler1. YARN总述 YARN是Hadoop资源管理器&#xff0c;它是一个通用资源管理系统&#xff0c;可为上层应用提供统一的资源管理和调度&#xff0c;它的引入为集群在利用率、资源统一管理…

关于栈和队列

目录栈&#xff08;Stack&#xff09;什么是栈栈的使用栈的模拟实现队列&#xff08;Queue&#xff09;什么是队列队列的使用队列的模拟实现循环队列双端队列 (Deque)栈&#xff08;Stack&#xff09; 什么是栈 栈是一种特殊的线性表&#xff0c;它只允许在固定的一端进行插入…

JavaScriptArray和String对象~

初识Array&#xff1a; 定义&#xff1a; 方式1 var 变量名new Array(元素列表);举例&#xff1a; <script>var arraynew Array(1,2,3);alert(array); </script>显示如下&#xff1a; 方式2 var 变量名[元素列表];举例&#xff1a; <script>var array[…

App Inspector使用 (macaca移动端元素检查器)

App Inspector安装说明&#xff1a;https://macacajs.github.io/app-inspector/zh/guide/install.html#%E7%8E%AF%E5%A2%83%E9%9C%80%E8%A6%81 依赖安装说明&#xff1a; 1、node环境&#xff1a;这里安装的时候和初始化的时候报错使用了两个版本&#xff0c;所以这里使用nvm…