当前位置: 首页 > wzjs >正文

阿里云建站流程优化网站排名公司

阿里云建站流程,优化网站排名公司,重庆网站建设套餐,网站警察备案OpenSSL简介 OpenSSL是一个用于加密和安全连接的开源软件库。它提供了一系列的加密算法、密码学功能和安全协议的实现,包括SSL(Secure Sockets Layer)和TLS(Transport Layer Security)等用于网络安全的协议。OpenSSL可…

OpenSSL简介

OpenSSL是一个用于加密和安全连接的开源软件库。它提供了一系列的加密算法、密码学功能和安全协议的实现,包括SSL(Secure Sockets Layer)和TLS(Transport Layer Security)等用于网络安全的协议。OpenSSL可以帮助开发人员在他们的应用程序中实现数据加密、数字证书的管理、安全连接的建立以及其他各种密码学功能。它被广泛应用于web服务器、网络应用程序、虚拟私有网络(VPN)等领域,以增强数据的安全性和保护用户的隐私。

Windows系统

Win10 64bit + vs2019

依赖的工具:
  1.  Nasm 汇编器

NASM代表"Netwide Assembler",是一种开源的、可移植的汇编语言编译器。NASM专为x86和x86-64体系结构设计,支持在各种操作系统中生成可执行的机器代码.

  1. 下载地址:https://www.nasm.us/

我下载的是:nasm-2.16-installer-x86.exe

  1. 安装后并将安装路径添加到系统环境变量 Path 中,如C:\Program Files (x86)\NASM.
  2. 打开一个命令提示符窗口输入 nasm -v 测试一下这个工具有没有安装成功。

  1.  Perl

Perl是一种功能丰富、强大而灵活的高级编程语言,由Larry Wall在1987年首次发布。它以其强大的文本处理能力和灵活的语法而闻名,被广泛用于系统管理、文本处理、网络编程和Web开发等领域。尤其擅长文本处理和自动化任务。

Strawberry Perl是一个为Windows操作系统定制的Perl发行版。传统的Perl发行版在Windows上的安装和配置可能会比较复杂,而Strawberry Perl旨在简化这个过程。其提供了一些Windows特定的扩展和工具,使得在Windows上编写和运行Perl脚本更加方便

  1. 下载地址:Strawberry Perl for Windows - Releases

我下载的是strawberry-perl-5.32.1.1-32bit.msi

  1. 双击安装就可以了,安装后会自动添加到环境变量中。
  2. 打开一个命令提示符窗口输入perl -v 测试一下这个工具有没有安装成功。

  1.  Visual studio 2019

下载地址:Visual Studio 旧版下载 - 2019、2017、2015

我下装的是vs_community_2019.exe

Openssl源码

源码下载地址:官网  OpenSSL 然后跳转到  https://github.com/openssl/openssl

我下载的是master分支的。即openssl-master.zip

编译openssl
  1. 以管理员身份运行一个VS的命令提示行窗口(若不是VS的命令行窗口的话会在编译OpenSSL的时候提示“找不到cl”之类的报错),因为我要编译32位的OpenSSL,所以我这里也是打开的一个32位的命令提示行窗口.

  1. 打开命令提示窗口以后,需要修改当前路径到OpenSSL的源码目录(如E:\openssl\code\openssl-master)中.
  2. 输入命令:perl Configure VC-WIN32 --prefix=E:\openssl\build\OpenSSL-Win32-release  

//prefix表示编译输出路径

VC-WIN32        //表示是Win 32位 release动态版本

debug-VC-WIN32  //Win 32位 debug动态版本

VC-WIN64A      //表示是Win 64位 release动态版本

  1. nmake    //编译
  2. nmake test   //测试使用
  3. nmake install   //安装  安装完毕,去之前配置的目录查看安装后的文件及结果。编译出的lib在\lib文件夹中,若是动态库的话,dll在\bin文件夹中

Linux系统

麒麟桌面版

在线安装

直接以root权限打开终端,输入apt install openssl即可安装, 输入openssl version -a查看版本

源码安装
下载openssl源码

下载地址:Downloads | OpenSSL Library

我下载的是:openssl-3.2.0.tar.gz

编译openssl
  1. 解压压缩包

把压缩包放在目录/root/software/openssl,打开终端输入下面命令。

tar -zxvf openssl-3.2.0.tar.gz

  1. config配置

我只编译Linux共享库,所以只加了一个shared参数。安装路径为默认的/usr/local/ssl. 这里设置安装路径为/usr/local/openssl。在/root/software/opensll/openssl-3.2.0打开终端,输入下面命令:

./config  shared --prefix=/usr/local/openssl

延伸说明:

 OpenSSL 的编译过程中,默认配置就是 Release 版本​(即关闭调试模式并启用优化)。如果你需要显式确保编译为 Release 版本,可以通过以下方式手动指定优化选项和禁用调试信息。如

./config \

  --prefix=/usr/local/ssl \

  --openssldir=/usr/local/ssl/conf \

  shared \

  -fPIC \

  no-asm \          # 禁用汇编加速(可选,某些平台需要)

  -O3 \             # 启用最高优化级别

  -DNDEBUG          # 禁用调试断言(可选)

说明:

-DNDEBUG: 禁用 assert() 断言(类似 C/C++ 中的 Release 模式)。

shared :动态库

相反,如果要生成debug,则

./config \

  --prefix=/usr/local/openssl-debug \  # Debug 版本独立路径

  --openssldir=/usr/local/openssl-debug/conf \

  shared \          # 生成动态库

  --debug \         # 启用调试模式

  -g \              # 生成调试符号

  -O0 \             # 禁用优化

  -fPIC \           # 位置无关代码(动态库必需)

  no-asm            # 禁用汇编优化(可选,避免兼容性问题)

验证是否编译为 Release 版本

方法1:检查编译输出的配置信息

运行 ./config 后,输出中会显示 Configuration 信息,确认是否包含 --release 或优化标志:

Operating system: x86_64-whatever-linux2

Configuring OpenSSL version 3.0.12 for target linux-x86_64

Using os-specific seed configuration

Creating configdata.pm

Creating Makefile

**********************************************************************

***   OpenSSL has been successfully configured                     ​***

***   Compiler: gcc -O3 -DNDEBUG -fPIC ...                         ​***

***                                                               ​***

***   Configuration flags: -O3 -DNDEBUG ...                       ​***

**********************************************************************

方法2:检查生成的二进制文件

编译完成后,检查库文件中是否包含调试符号:

# 检查是否包含调试符号(若无输出则为 Release 版本)

file libssl.so.* | grep "not stripped"  # 如果有输出,说明包含调试符号

# 手动去除调试符号(可选)

strip libssl.so.* libcrypto.so.*

 验证 Debug 动态库

# 查看 libssl.so 是否包含调试信息

file /usr/local/openssl-debug/lib/libssl.so.* | grep "with debug_info"

# 使用 objdump 检查符号表(应有调试符号)

objdump --syms /usr/local/openssl-debug/lib/libssl.so.* | grep "\.debug"

  1. make编译

配置好编译选项后,运行make,一直等着就好了.

  1. make test测试

make编译成功后,可以进行make test

  1. make install安装
  2. 备份原来的openssl
    mv /usr/bin/openssl  /usr/bin/openssl_bak
  3. 创建软链接到系统位置

ln -s /usr/local/openssl/bin/openssl  /usr/bin/openssl

  1. 将openssl 的lib 库添加到系统(‘/usr/local/openssl/lib64’ 单引号)

echo '/usr/local/openssl/lib64' > /etc/ld.so.conf.d/openssl.conf

即openssl.conf 的内容是/usr/local/openssl/lib64

  1. 加载lib库

ldconfig

  1. 看看openssl版本

openssl  version

延伸:

# 查看openssl主程序软链接

ls -l /usr/bin/openssl

# 删除openssl主程序软链接

sudo rm -f /usr/bin/openssl

把/usr/bin/的openssl_bak改回openssl

延伸:

在Linux系统中,OpenSSL、libssl和libcrypto之间的关系可以概括如下:

1. ​OpenSSL 项目

​定义:OpenSSL 是一个开源的、功能全面的安全工具包,用于实现SSL/TLS协议以及各种加密算法。

​组成:

​命令行工具:提供如openssl命令,用于执行证书生成、加密解密等操作。

​核心库:包括libssl和libcrypto两个动态库,为其他应用程序提供API。

2. ​libcrypto 库

​功能:实现基础的加密算法(如AES、RSA、SHA等)和底层密码学操作(如随机数生成、密钥管理)。

​作用:作为加密功能的底层依赖,供libssl或其他直接需要加密的应用程序调用。

​位置:通常以libcrypto.so(动态库)或libcrypto.a(静态库)形式存在。

3. ​libssl 库

​功能:基于libcrypto实现SSL/TLS协议,处理安全通信的握手、密钥交换和数据加密传输。

​依赖:必须链接libcrypto,因为它依赖其加密算法完成协议操作。

​位置:通常以libssl.so或libssl.a形式存在。

4. ​三者关系

​层级结构:

OpenSSL项目

├── openssl命令行工具(依赖libssl和libcrypto)

├── libssl(SSL/TLS协议实现,依赖libcrypto)

└── libcrypto(基础加密算法实现)

​协作方式:

应用程序若需SSL功能,需链接libssl;若直接使用加密算法,则链接libcrypto。

openssl命令行工具通过调用这两个库的API完成具体任务(如生成证书、加密文件)。

5. ​实际应用场景

​开发:编写HTTPS服务器时,需包含libssl头文件并链接-lssl -lcrypto。

​系统工具:如curl或wget处理HTTPS请求时,依赖libssl和libcrypto。

​版本管理:不同版本可能引入不兼容变更(如OpenSSL 1.1.x与3.x),需注意依赖匹配。

总结

​OpenSSL 是整体的工具包,包含工具和库。

​libcrypto 提供加密算法的底层实现。

​libssl 基于libcrypto实现SSL/TLS协议,两者共同支撑安全通信功能。命令行工具和第三方应用通过调用这些库实现加密及协议功能。

http://www.dtcms.com/wzjs/464690.html

相关文章:

  • 东莞市建设培训中心网站百度竞价怎么做效果好
  • 福建老区建设网站个人网站开发网
  • 河南省建设网站首页今日疫情最新数据
  • 如何注册免费网站域名2023必考十大时政热点
  • 做网站实时数据用接口网站怎么做谷歌推广
  • 南山做网站公司在哪里软文营销ppt
  • 深圳分销网站设计电话深圳网络广告推广公司
  • 做外贸要注册那些网站百度推广方法
  • 企业网络采购平台苏州网站建设优化
  • 深圳营销网站建设模板国内建站平台
  • 微网站如何做优化网站关键词排名软件
  • 广州新公司网站建设推广接单平台
  • 个人网站类型2023年6月疫情恢复
  • 信息发布平台建站中央新闻
  • 宁波全网营销型网站建设旅游推广赚佣金哪个平台好
  • 沧州网站建设优化郑州seo优化哪家好
  • 网站推广排名公司爱链工具
  • 深圳网站设计权威乐云践新有友情链接的网站
  • 工商网站注册公司百度app下载最新版
  • 网站怎么做可以合法让别人充钱推广途径有哪些
  • 园林网站模板下载江北seo
  • 品牌网站开发公司seo关键词布局技巧
  • h5企业网站通用源码哪些网站可以免费申请域名
  • 广东装饰网站建设东莞seo网站优化排名
  • 广州网络推广建站seo这个行业怎么样
  • 成都哪家网站建设北京建站优化
  • 微商城客服优化神马网站关键词排名价格
  • 在自己的电脑做网站空间独立站搭建要多少钱
  • 中国加盟网厦门seo全网营销
  • 哪个企业做网站如何做网站关键词优化