基于openEuler的OpenSSL编译安装和编程实践
2021/11/2 20:43:29
本文主要是介绍基于openEuler的OpenSSL编译安装和编程实践,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
基于openEuler的OpenSSL编译安装和编程实践
20191331 lyx
环境: OpenEuler 20.03 LTS
- 检查openssl版本
当前openEuler系统安装的OpenSSL版本是1.1.1f,现在(2021.04)OpenSSL最新的版本是1.1.1l.
- openEuler中没有变成开发需要的头文件。我们需要自己下载OpenSSL的源码编译安装。
1.首先去OpenSSL官网下载最新版OpenSSL源码。
链接:https://www.openssl.org/source/
2.在root目录新建两个文件夹,分别放置OpenSSL的源码和安装路径。
[root@localhost ~]# mkdir lyx-opensslsrc lyx-openssl [root@localhost ~]# cd lyx-openssl [root@localhost lyx-openssl]# pwd /root/lyx-openssl
3.将源码上传并解压至lyx-opensslsrc
文件夹:
tar -zxvf openssl-1.1.1l.tar.gz -C ./
4.配置编译安装路径(/root/lyx-openssl),和openEuler系统默认的不同。
cd lyx-opensslsrc/openssl-1.1.1k ./config --prefix=/root/lyx-openssl
5.编译(make时间稍长,耐心等待),测试、安装,其中测试步骤可选:
make make test make install
6.查看安装后的版本,确定是最新安装的1.1.1l版:
cd ~/lyx-openssl ./bin/openssl version
安装成功:
OpenSSL命令的使用
通过 openssl help
查看帮助文档:
OpenSSL编程
密码算法库的功能非常强大,是OpenSSL的基础,它实现了现代密码学大部分主流的密码算法和标准,主要包括公开密钥(非对称)算法、对称加密算法、信息摘要算法、X509 数字证书标准、PKCS12个人信息交换语法标准、PKCS7 加密消息语法标准、OCSP 在线证书状态查询协议、 CRL 证书吊销列表等标准。同时 OpenSSL 还提供了Engine 机制;利用 Engine 可以将加密卡、加密机这样的外部硬件算法模块无缝集成到 OpenSSL 中。
什么是SSL
-
为了让网络通信更安全,需要认证和加密,认证是说明你是要找的人,加密是为了让截获中间报文第三者无法得到消息内容。
-
为此有人设计了SSL,即套接字上的安全层,简单来说就是在TCP之上做一个安全通信层,HTTP on SSL 即是HTTPs,现在几乎所有的银行网站访问都是基于HTTPS协议的。
-
认证是通过证书+非对称加密算法来解决的
于是便有了OpenSSL
-
SSL交互过程还是很复杂的,牵扯到非对称加密和对称加密,以及复杂的交互过程,为此有人写了openssl库,这个库的使用非常广泛,本文就是阐明如何安装和基本使用这个库的。
-
有了这openssl库,就可以直接写和HTTPS的交互的代码了。
OpenSSL功能
openssl可以实现:秘钥证书管理、对称加密和非对称加密 。
openssl: 多用途的命令行工具,包openssl,可以执行交互或批量命令。 libcrypto: 加密算法库,包openssl-libs。 libssl:加密模块应用库,实现了ssl及tls,包nss。
- 作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。
一个简单测试
#include <stdio.h> #include <openssl/evp.h> int main(){ OpenSSL_add_all_algorithms(); return 0; }
编译:
gcc -o to test_openssl.c -I /root/lyx-openssl/include -L /root/lyx-openssl/lib -lcrypto -lpthread
执行 ./to;echo $?
:
这篇关于基于openEuler的OpenSSL编译安装和编程实践的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)