概述: windows系统编译OpenSSL 1.1.1版本操作步骤

openssl/NOTES-WINDOWS.md at master openssl/openssl

[toc]

0x01、编译环境说明

  • 操作系统:win10
  • 编译器:vs2017
  • OpenSSL: 1.1.1W

0x02、依赖工具说明

根据官方说明,OpenSSL编译除了Visual Studio 2019以外,为方便编译,需要安装Strawberry Perl和NASM,下载地址分别如下:

Strawberry Perl:Strawberry Perl for Windows

NASM:NASM,这是一个汇编器

特别注意:Perl安装后会自动添加到环境变量中,而NASM不会,一定要在环境变量Path中添加NASM.exe所在的目录,否则可能会出现意想不到的错误。

0x03、编译步骤

下载源码

从Github中可以直接下载:GitHub - openssl/openssl: TLS/SSL and crypto library

或者在 OpenSSL 官方去下载 OpenSSL

也可以参考官方文档进行编译:openssl/NOTES-WINDOWS.md at master · openssl/openssl

0x04、编译

  1. 使用管理员权限打开 vs2017 的开发人员命令提示符
    vs2017 Developer Command Prompt
    打开后切换到 openssl 解压目录:

    openssl解压目录
  2. 配置 Perl,参考官方文档配置

    • perl Configure VC-WIN32 if you want 32-bit OpenSSL or

    • perl Configure VC-WIN64A if you want 64-bit OpenSSL or

    • perl Configure VC-WIN64-ARM if you want Windows on Arm (win-arm64) OpenSSL or

    • perl Configure VC-WIN64-CLANGASM-ARM if you want Windows on Arm (win-arm64) OpenSSL with assembly support using clang-cl as assembler or

    • perl Configure VC-CLANG-WIN64-CLANGASM-ARM if you want Windows on Arm (win-arm64) OpenSSL using clang-cl as both compiler and assembler or

    • perl Configure VC-WIN32-HYBRIDCRT if you want 32-bit OpenSSL dependent on the Universal CRT or

    • perl Configure VC-WIN64A-HYBRIDCRT if you want 64-bit OpenSSL dependent on the Universal CRT or

    • perl Configure to let Configure figure out the platform

    特别注意:–prefix选项指定的安装路径必须是绝对路径,若不指定,则默认会安装在C:\Program Files (x86)\下面,如果你不是用管理员权限执行,则会出现*Permission Denied* 错误,切记。

    1
    perl Configure VC-WIN32 --prefix=E:\OpenSSL # 将其安装到 E:\OpenSSL 目录
  3. nmake

  4. nmake test

  5. namke install

0x05、使用

使用时,在工程引入文件和库文件添加 Openssl 安装目录即可。