Windows下编译OpenSSL最新版

OpenSSL是一个强大的安全套接字层密码库,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,但是,你不应该只将其作为一个库来使用,它还是一个多用途的、跨平台的密码工具。

一、编译环境说明

  • 操作系统:win11
  • 编译器:Visual Studio 2019
  • OpenSSL:3.1.1

二、依赖工具说明

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

Strawberry Perl:Strawberry Perl for Windows

NASM:NASM,这是一个汇编器

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

三、编译步骤

1、源码下载

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

2、编译

进入源码所在目录后,执行以下命令

perl Configure VC-WIN64A --prefix=D:\your\install\path
nmake
nmake install

编译过程大约需要10分钟左右,启动nmake后你可以去溜达一圈或者喝杯咖啡 ,回来就差不多好了。

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

四、可能出错的地方

1、Could Not Find D:\SourceCode\openssl-3.1.1\libcrypto-3-x64.*

IF EXIST .manifest DEL /F /Q .manifest
        IF EXIST libcrypto-3-x64.dll DEL /F /Q libcrypto-3-x64.dll
        cmd /C ""link" /nologo /debug /dll  /nologo /debug @C:\Users\joba_\AppData\Local\Temp\nm6A39.tmp /implib:libcrypto.lib || (DEL /Q libcrypto-3-x64.* libcrypto.lib & EXIT 1)"
link: extra operand '/dll'
Try 'link --help' for more information.
Could Not Find D:\SourceCode\openssl-3.1.1\libcrypto-3-x64.*
NMAKE : fatal error U1077: “cmd”: return code “0x1”
Stop.
NMAKE : fatal error U1077: “"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\nmake.exe"”: returen code “0x2”
Stop.

这个问题我在Github的Issue里发现有人遇到这个问题,但是没人解答,我解决这个问题的是将NASM配置到环境变量中,我出现这个题时,是直接在Shell中通过命令:path d:\nasm\path;%PATH%的方式配置是出现该错误,设置环境变量后,问题解决。

2、Cannot create directory C:/Program Files/Common Files/SSL: Permission denied

Cannot create directory C:/Program Files/Common Files/SSL: Permission denied
NMAKE : fatal error U1077: “D:\DevKits\Perl\perl\bin\perl.exe”: 返回代码“0x2”
Stop.

这个错误比较好解决,因为OpenSSL在install时会往C:\Program Files\Common Files中创建SSL目录,并写入一些文件,因此你只需要用管理员身份运行Shell即可。

五、小结

OpenSSL编译相对来说不难,如果你有问题可以下方评论,我尽力解答。如果你不想动手,想拿现成的,动动你的下手,关注下GZH《人形编译器》,回复openssl就能获得下载链接。

举报
评论 0