【物联网】Linux平台OpenSSL安装教程

article/2025/8/4 15:22:39

00. 目录

文章目录

    • 00. 目录
    • 01. OpenSSL概述
    • 02. OpenSSL下载
    • 03. OpenSSL安装
    • 04. 查看系统OpenSSL版本
    • 05. 附录

01. OpenSSL概述

在这里插入图片描述

OpenSSL是一个安全套接字层密码库,囊括主要的密码算法、常用密钥、证书封装管理功能及实现ssl协议。OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库libssl、应用程序命令工具以及密码算法库libcrypto。

SSL:Secure Socket Layer,安全套接字层协议,分为SSLv2和SSLv3两个版本,TSL在SSL3.0基础之上提出的安全通信标准化版。主要是为了加密传输数据而产生的协议,能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。

SSL协议建立在可靠的传输层协议(TCP,UDP,SCTP)之上,应用层协议(HTTP,FTP,TELNRET)在SSL之上,SSL协议在应用层协议通信之前就已经完成了加密算法、服务器认证等工作。http协议调用了ssl协议,那么他就变成了https(http –>ssl–>https)。主要功能两个:
   a. 加密解密在网络中传输的数据包,同时保护这些数据不被修改和伪造。
    应用层——>ssl解密——>传输层
    传输层——>ssl加密认证——>应用层
   b. 验证网络对话中双方的身份。

SSL握手协议:SSL包含两个子协议,一个是包协议,一个是子协议,包协议说明SSL的数据包是如何封装的;握手协议说明通信双方协商通信双方决定使用什么算法及算法使用的key。暂时只讨论握手协议的过程。
1) Client向服务器发送自己支持的协议版本(如TLS1.2)、client生成的随机数、自己加密算法的一些配置。
 2) Server 收到Client请求后向客户端response:确认使用加密通信协议的版本、生成一个随机数、确认使用加密的方法、server certificate(服务器证书)。
 3) Client 验证服务器证书,在确认无误后取出其公钥,并发送随机数 Pre-Master-Key(用于公钥加密)、编码变更通知(通信双方都用商定好的密钥进行通信;即随后的信息都将用双方商定好的加密方法和密钥发送. )
 4) Server验证完client的身份之后,用自己的私有密钥解密得到pre-master-key后,然后双方利用这个pre-master key来共同协商,得到master secret。返回信息给client
 5) 双方用master一起产生真正的session key,这就是他们在剩下的过程中的对称加密的key了。这个key还可以用来验证数据完整性。双方再交换结束信息。握手结束。

证书Certificate和证书颁发机构CA(certification authority)
证书是建立公共密钥和某个实体之间联系的数字化的文件。它包含的内容有:版本信息(X.509也是有三个版本的)、系列号、证书接受者名称、颁发者名称、证书有效期、公共密钥、一大堆的可选的其他信息、CA的数字签名。证书由CA颁发,由CA决定该证书的有效期,由该CA签名。每个证书都有唯一的系列号。证书的系列号和证书颁发者来决定某证书的唯一身份。常用的证书是采用X.509结构的,这是一个国际标准证书结构,
CA是第三方机构,被你信任,由它保证证书的确发给了应该得到该证书的人。CA自己有一个庞大的public key数据库,用来颁发给不同的实体。CA也是一个实体,它也有自己的公共密钥和私有密钥。

加密算法
1)对称加密:指加密和解密使用相同密钥的加密算法。对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性
 常见的对称加密算法:DES、3DES、DESX、AES、RC4、RC5、RC6等
 2)非对称加密:指加密和解密使用不同密钥的加密算法,也称为公私钥加密
 常见的非对称加密算法:RSA、DSA(数字签名用)等
 3)Hash算法:Hash算法它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值逆向获得目标信息

常见的Hash算法:MD2、MD4、MD5、SHA、SHA-1等

02. OpenSSL下载

官网下载:https://www.openssl.org/

CSDN下载:openssl-1.1.1d.rar

03. OpenSSL安装

3.1 解压OpenSSL

deng@local:~/sz01$ tar -xzvf openssl-1.1.1d.tar.gz 

3.2 进入openssl目录

deng@local:~/sz01$ cd openssl-1.1.1d/

3.3 创建安装目录openssl_install

deng@local:~/sz01/openssl-1.1.1d$ mkdir -p ~/openssl_install/ssl
deng@local:~/sz01/openssl-1.1.1d$ 

3.4 运行如下配置命令

deng@local:~/sz01/openssl-1.1.1d$ ./config shared --prefix=/home/deng/openssl_install --openssldir=/home/deng/openssl_install/ssl
Operating system: x86_64-whatever-linux2
Configuring OpenSSL version 1.1.1d (0x1010104fL) for linux-x86_64
Using os-specific seed configuration
Creating configdata.pm
Creating Makefile**********************************************************************
***                                                                ***
***   OpenSSL has been successfully configured                     ***
***                                                                ***
***   If you encounter a problem while building, please open an    ***
***   issue on GitHub <https://github.com/openssl/openssl/issues>  ***
***   and include the output from the following command:           ***
***                                                                ***
***       perl configdata.pm --dump                                ***
***                                                                ***
***   (If you are new to OpenSSL, you might want to consult the    ***
***   'Troubleshooting' section in the INSTALL file first)         ***
***                                                                ***
**********************************************************************
deng@local:~/sz01/openssl-1.1.1d$ 

命令如下:建议使用绝对路径,避免踩坑。

./config shared --prefix=/home/deng/openssl_install --openssldir=/home/deng/openssl_install/ssl

其中“prefix”是安装目录,“openssldir”是配置文件目录,“shared”作用是生成动态链接库(即.so库) 。

如果编译有问题,配置命令加上no-asm(表示不使用汇编代码)

./config no-asm shared --prefix=/home/deng/openssl_install --openssldir=/home/deng/openssl_install/ssl

3.5 在openssl源码目录下,运行make depend命令。

deng@local:~/sz01/openssl-1.1.1d$ make depend
deng@local:~/sz01/openssl-1.1.1d$ 

3.6 运行make命令进行编译

deng@local:~/sz01/openssl-1.1.1d$ make 

3.7 安装openssl

deng@local:~/sz01/openssl-1.1.1d$ make install 

在配置的openssl安装目录下home/deng/openssl_install找到lib目录,有生成的库文件:“libcrypto.so.1.1”“libssl.so.1.1”和软链接“libcrypto.so”“libssl.so”

/home/deng/openssl_install/include/openssl里的内容是相关头文件。

温馨提示:

:有的编译工具是32位的,如果在64位的linux机器上使用,这时只要将Makefile中的-m64都删除,再进行编译即可。

04. 查看系统OpenSSL版本

查看OpenSSL版本,命令如下:

deng@local:~$ openssl version
OpenSSL 1.1.1f  31 Mar 2020
deng@local:~$ openssl version -a
OpenSSL 1.1.1f  31 Mar 2020
built on: Mon Feb  6 17:57:17 2023 UTC
platform: debian-amd64
options:  bn(64,64) rc4(16x,int) des(int) blowfish(ptr) 
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-7mt7n4/openssl-1.1.1f=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
OPENSSLDIR: "/usr/lib/ssl"
ENGINESDIR: "/usr/lib/x86_64-linux-gnu/engines-1.1"
Seeding source: os-specific
deng@local:~$ 

05. 附录


http://chatgpt.dhexx.cn/article/qeTFaqKj.shtml

相关文章

OpenSSL安装使用(二):OpenSSL安装说明

注&#xff1a;该方法适用于Openssl 1.1.1及以上版本 1&#xff09;安装环境&#xff1a;Windows10专业版VS2010 相关软件下载地址&#xff1a; 1&#xff09;ActivePerl &#xff1a;Download & Install Perl - ActiveState 2&#xff09;openssl&#xff1a;/source/…

OpenSSL安装

下载OpenSSL压缩包 下载地址 可以直接下载压缩包或者用Git拉取 下载perl 下载地址 下载压缩包&#xff0c;解压&#xff0c;将路径D:\Program\strawberry-perl\perl\bin配置到环境变量path中 打开powershell&#xff0c;输入perl -v 代表安装成功 下载nasm 下载地址 下载…

OpenSSL完整安装教程及部分问题解决

一、环境&#xff1a; 系统&#xff1a;Centos 7 OpenSSL版本&#xff1a;openssl-1.1.1g 二、下载 OpenSSL官方下载网址&#xff1a;https://www.openssl.org/source/ openssl有发行了2.0版本&#xff0c;但此处仅用稳定的1.0版本即可。 官方教程&#xff1a;https://wiki.…

Windows 下OpenSSL安装过程及错误解决办法

Windows下使用OpenSSL有两种方式&#xff1a; 一.直接下载别人编译好的安装包&#xff1a;http://slproweb.com/products/Win32OpenSSL.html 二.自己编译安装&#xff1a; 1.下载并安装perl http://www.activestate.com/activeperl/downloads/ 2.安装与配置&#xff1a; …

openssl安装与使用

1、OpenSSL简介 OpenSSL是一个SSL协议的开源实现&#xff0c;采用C语言作为开发语言&#xff0c;具备了跨平台的能力&#xff0c;支持Unix/Linux、Windows、Mac OS等多种平台。    OpenSSL最早的版本在1995年发布&#xff0c;1998年后开始由OpenSSL项目组维护和开发。当前最新…

windows 下openssl安装配置

一、下载 1、官网下载 /source/index.html&#xff08;源码版&#xff09; 2、网盘下载&#xff08;windows版&#xff09; 链接&#xff1a;https://pan.baidu.com/s/1JrM_Fg8uHt0O0HEN_w7coA 提取码&#xff1a;7777 3 、码客下载 OpenSSL官方下载 - 码客 …

Openssl安装教程

目录 1、安装相关依赖2、官网下载openssl版本3、编译openssl4、查看openssl版本 1、安装相关依赖 通过yum命令下载相关的依赖包gcc、libffi-devel、zlib*、openssl-devel&#xff0c;当然很多依赖包系统都应该有了&#xff1b; yum install gcc libffi-devel zlib* openssl-d…

降维分析之PCA分析及实现

引言 不知道大家还记不记得前面我们分享 支持向量机&#xff08;SVM&#xff09;的分析及python实现时说过&#xff0c;当数据遇到线性不可分时&#xff0c;我们可以利用kernel技巧将低维数据映射到高维数据上,从而使得数据线性可分&#xff0c;这是个“升维”操作。那么本章我…

[R语言] R语言PCA分析教程 Principal Component Methods in R

R语言PCA分析教程 Principal Component Methods in R(代码下载) 主成分分析Principal Component Methods&#xff08;PCA&#xff09;允许我们总结和可视化包含由多个相互关联的定量变量描述的个体/观察的数据集中的信息。每个变量都可以视为不同的维度。如果数据集中包含3个以…

R语言对表达谱样本做PCA分析

主成分分析(Principal component analysis, PCA)是一种数学算法,它可以在减少数据维度的同时,保留数据集中绝大多数的变量[1]。 PCA通过对主成分进行辨别,找出一个方向,并沿此方向分布的数据为最大值,从而减少数据维度。通过采用这样的主成分,便可以只选用若干变量而不…

SIMCA-P 11.5 使用教程 PCA分析 PLS-DA分析

软件:SIMCA-P 11.5 数据:一个公共生物数据,195个样本(1类样本48例,2类样本147例),22个特征 二维数据表,csv格式,第一行为类标,第一列为特征编号 1、读取数据文件 (1)"File" -> "New" -> 选择csv数据文件,跳转Text Import Wizard窗口…

GCTA PCA分析以及软件安装教程

软件介绍系列 1. GCTA介绍 在群体遗传中&#xff0c;GCTA中做PCA非常方便, 下面介绍一下GCTA的安装方法. 2. 安装命令 使用conda自动安装 conda install -c biobuilds gcta 手动安装 官方地址 说明文档 3. 安装成功测试 这里, 应该键入gcta64, 而不是gcta (base) [de…

PCA分析法的python主要代码

一 PCA分析法介绍 可以理解为是一种降维的思想&#xff0c;将M列数据降维成对应的N列数据&#xff0c;用主要的几个字段解释整体方差变异 也可以理解为一种低维度的映射&#xff0c;举例将三维的数据找到一个二维映射面&#xff0c;同时可以尽力解释出较多的信息来 举例如下图…

R统计绘图-PCA分析及绘制双坐标轴双序图

zhe 点击名片 关注我们 有师妹来咨询&#xff0c;怎样画类似于上图的双坐标轴PCA双序图。正好之前虽然PCA和RDA分析及绘图都写过教程&#xff0c;但是变量分析结果没有在图中显示&#xff0c;所以使用R统计绘图-环境因子相关性热图流程开始按图1整理环境因子数据&#xff0c;…

PCA分析(主成分分析)--结果解读

主成分分析&#xff08;PCA&#xff09;是一个很好的工具&#xff0c;可以用来降低特征空间的维数。PCA的显著优点是它能产生不相关的特征&#xff0c;并能提高模型的性能。 PCA用于减少用于训练模型的特征维度数量&#xff0c;它通过从多个特征构造所谓的主成分&#xff08;P…

R统计绘图-PCA分析绘图及结果解读(误差线,多边形,双Y轴图、球形检验、KMO和变量筛选等)

虽然PCA和RDA分析及绘图都写过教程,但是对于结果的解释都没有写的很详细,刚好最近有人询问怎样使用FactoMineR factoextra包进行PCA分析。所以使用R统计绘图-环境因子相关性热图中的不同土壤环境因子数据进行PCA绘图和结果解读推文。 一、 数据准备 # 1.1 设置工作路径 #kn…

使用 QTLtools 进行 PCA 分析

3 使用 QTLtools 进行 PCA 分析 QTLtools 工具可以进行基因型的PCA分析&#xff0c;也可以进行表型的PCA分析&#xff0c;以下教程分别针对基因型和表型的PCA进行介绍&#xff1a; 3.1 对基因型进行PCA分析&#xff1b; 命令如下所示&#xff1a; QTLtools pca --vcf genot…

R语言中如何进行PCA分析?利用ggplot和prcomp绘制基因表达量分析图

学习笔记的主要内容是在R语言中利用ggplot2进行PCA分析和绘图&#xff0c;包括简单分析与操作流程&#xff0c;对比不同方式得到的结果差异&#xff0c;提供脚本代码供练习. PCA分析的原理 在处理基因差异表达数据时&#xff0c;有时候需要分析其中因素的影响最大&#xff0c;…

r语言dataellipse_R语言 PCA分析

PCA数据分析 PCA结果分析及可视化首推factoextra包&#xff0c;能处理各种R函数计算PCA的结果&#xff0c;有&#xff1a; stats::prcomp() FactoMiner::PCA() ade4::dudi.pca() ExPosition::epPCA() 如果我们想判断PCA中需要多少个主成分比较好&#xff0c;那么可以从主成分的…

样本数据PCA分析

PCA分析及画图 library(ggpubr) library(ggplot2) library(ggthemes) data1<-read.table(./100klist.txt,header 1)[,1:4] head(data1)BCD_rep1 BCD_rep2 CK_rep1 CK_rep2 1 0.1987 0.2036 0.1807 0.2062 2 0.2133 0.2169 0.2040 0.2140 3 0.1943 0.1965 …