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

Windows下编译OpenSSL静态库

目录

1. 版本与下载地址

2. 下载与安装VS2015

3. 下载与安装Perl

4. 测试ActivePerl是否安装正确

5. 下载OpenSSL

6. 编译32位OpenSSL静态库

6.1 解压openssl-1.0.2l.tar.gz

6.2 打开VS2015 x86本机工具命令提示符

6.3 输入命令进入到openssl的目录中

6.4 执行配置命令

6.5 执行命令

6.6 执行生成命令

6.7 执行测试命令

6.8 执行安装命令

7. 编译64位openssl静态库

7.1 解压openssl-1.0.2l.tar.gz

7.2 打开VS2015 x64本机工具命令提示符

7.3 输入命令进入到openssl的目录中

7.4 执行配置命令

7.5 执行命令

7.6 执行生成命令

7.7 执行测试命令

7.8 执行安装命令

8. 编译静态库下载


        OpenSSL是一个功能丰富且开源的安全工具箱,它提供的主要功能有:SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能。

       OpenSSL采用C语言作为开发语言,这使得它具有优秀的跨平台性能,OpenSSL支持:Linux、UNIX、Android、Windows、Mac等平台。

        OpenSSL的github地址:GitHub - openssl/openssl: TLS/SSL and crypto library

        如果不想自己编译源码,那么可以直接去下载编译好的二进制文件进行安装,省事方便。

下载地址:Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions

        本文主要介绍如何在Windows下编译OpenSSL源码生成OpenSSL静态库。

1. 版本与下载地址

版本

下载地址

OpenSSL

openssl-1.0.2l.tar.gz

openssl-1.0.2l及Perl编译工具资源

Perl

ActivePerl-5.24.1.2402-MSWin32-x64-401627

openssl-1.0.2l及Perl编译工具资源

Visual Studio

Visual Studio 2015

链接:百度网盘 请输入提取码

提取码:xopt

2. 下载与安装VS2015

        从上面的下载地址,下载VS2015安装包,安装过程略。

3. 下载与安装Perl

        从上面的下载地址,下载Perl安装包,然后双击“ActivePerl-5.24.1.2402-MSWin32-x64-401627.exe”,

4. 测试ActivePerl是否安装正确

        使用cmd命令行工具,进入C:\Perl64\eg路径下,执行

cd C:\Perl64\eg
perl example.pl

        若显示“Hello from ActivePerl!”,则说明Perl安装成功。

5. 下载OpenSSL

        本文使用OpenSSL 1.0.2l,可以从上面的下载地址,下载OpenSSL 1.0.2l安装包。\

注意:编译32位和64位分别解压一次,以免环境变量

6. 编译32位OpenSSL静态库

6.1 解压openssl-1.0.2l.tar.gz

        如:D:\openssl-1.0.2l-x86

6.2 打开VS2015 x86本机工具命令提示符

        以管理员身份运行“VS2015 x86本机工具命令提示符”

6.3 输入命令进入到openssl的目录中

d:b
cd D:\openssl-1.0.2l-x86

6.4 执行配置命令

mkdir build
perl Configure VC-WIN32 no-asm --prefix=D:\openssl-1.0.2l-x86\build

6.5 执行命令

ms\do_ms

6.6 执行生成命令

        编译生成openssl静态库

nmake -f ms\nt.mak

6.7 执行测试命令

        测试openssl静态库是否正常

nmake -f ms\nt.mak test

6.8 执行安装命令

nmake -f ms\nt.mak install

        成功则会在D:\openssl-1.0.2l-x86\build目录下生成bin、include、lib、ssl四个文件夹

7. 编译64位openssl静态库

7.1 解压openssl-1.0.2l.tar.gz

        如: D:\openssl-1.0.2l-x64

7.2 打开VS2015 x64本机工具命令提示符

7.3 输入命令进入到openssl的目录中

d:
cd D:\openssl-1.0.2l-x64

7.4 执行配置命令

mkdir build
perl Configure VC-WIN64A no-asm --prefix=D:\openssl-1.0.2l-x64\build

7.5 执行命令

ms\do_win64a

7.6 执行生成命令

        编译生成openssl静态库

nmake -f ms\nt.mak  

7.7 执行测试命令

        测试openssl静态库是否正常

nmake -f ms\nt.mak test 

7.8 执行安装命令

nmake -f ms\nt.mak install 

        成功则会在D:\openssl-1.0.2l-x64\build目录下生成bin、include、lib、ssl四个文件夹。

备注:可能使用的命令

        测试OpenSSL动态库:nmake -f ms\ntdll.mak test

        测试OpenSSL静态库:nmake -f ms\nt.mak test

        安装OpenSSL动态库:nmake -f ms\ntdll.mak install

        安装OpenSSL静态库:nmake -f ms\nt.mak install

        清除上次OpenSSL动态库的编译,以便重新编译:nmake -f ms\ntdll.mak clean

        清除上次OpenSSL静态库的编译,以便重新编译:nmake -f ms\nt.mak clean

8. 编译静态库下载

        下载地址:OpenSSL Windows平台32位和64位静态库

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 华为机试题-单车道汽车通行时间-Java
  • CentOS6用文件配置IP模板
  • 东软“引战”国家队 通用技术“补链”大国重器
  • 分类模型的算法性能评价
  • 如何设计一个C语言面向结构体的内存数据库
  • 政安晨【零基础玩转各类开源AI项目】基于Ubuntu系统部署MuseV (踩完了所有的坑):基于视觉条件并行去噪的无限长度和高保真虚拟人视频生成
  • 简谈设计模式之代理模式
  • 五、 计算机网络(考点篇)
  • 走进linux
  • C语言 | Leetcode C语言题解之第230题二叉搜索树中第K小的元素
  • 我的AI音乐梦:ChatGPT帮我做专辑
  • 【PyTorch单点知识】自动求导机制的原理与实践
  • Apache配置与应用(优化apache)
  • 【Excel】 批量跳转图片
  • C#,开发过程中技术点GPT问答记录
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【391天】每日项目总结系列128(2018.03.03)
  • 2017-09-12 前端日报
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Android交互
  • canvas 绘制双线技巧
  • canvas 五子棋游戏
  • crontab执行失败的多种原因
  • Django 博客开发教程 8 - 博客文章详情页
  • ECMAScript6(0):ES6简明参考手册
  • Javascript基础之Array数组API
  • Markdown 语法简单说明
  • mysql 5.6 原生Online DDL解析
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • PHP面试之三:MySQL数据库
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Spring Cloud中负载均衡器概览
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 警报:线上事故之CountDownLatch的威力
  • 聊聊directory traversal attack
  • 一个完整Java Web项目背后的密码
  • ​低代码平台的核心价值与优势
  • ​香农与信息论三大定律
  • ​虚拟化系列介绍(十)
  • (70min)字节暑假实习二面(已挂)
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (JS基础)String 类型
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (ZT)薛涌:谈贫说富
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (十六)一篇文章学会Java的常用API
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (学习总结16)C++模版2
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)视频码率,帧率和分辨率的联系与区别
  • (转载)Linux 多线程条件变量同步
  • (转载)Linux网络编程入门
  • .net core 控制台应用程序读取配置文件app.config