Windows下编译openssl库
1、概述
OpenSSL是一個開放源代碼的軟件庫包,它實現(xiàn)了 SSL(Secure SocketLayer)和 TLS(Transport Layer Security)協(xié)議,所以應用程序可以使用這個包來進行安全通信,避免竊聽,同時確認另一端連接者的身份。這個包廣泛被應用在互聯(lián)網的網頁服務器上。
SSL是啥?大家知道我們訪問網站的時候,以HTTPS開頭的表示你和服務器之間傳輸?shù)臄?shù)據(jù)經過了加密,這里所使用的加密協(xié)議就是SSL(Secure Sockets Layer,后來又推出了它的后續(xù)版本,改名叫TLS)。也就是說,把HTTP協(xié)議經過一層SSL協(xié)議進行加密包裝,就變成了HTTPS。當然,SSL/TLS還用在很多協(xié)議中,例如VPN、加密的電子郵件協(xié)議等。
在SSL協(xié)議中,我們使用了很多密碼學手段來保護數(shù)據(jù),其中包括對稱密碼、公鑰密碼、數(shù)字簽名、證書、完整性校驗、偽隨機數(shù)生成等。由于這些算法和操作都非常復雜,于是開源社區(qū)就開發(fā)了一套庫,這個庫里面提供了很多現(xiàn)成的標準方法,其他開發(fā)者只要用正確調用這些方法,就可以實現(xiàn)SSL協(xié)議中的各種加密/解密操作了。這個庫就是開源的OpenSSL庫。
如何使用openssl?
一般情況下,直接到 Win32 OpenSSL 上下載已經編譯好的 OpenSSL 庫使用即可。但在某些情況下,可能需要適當?shù)男薷幕蛘卟眉?OpenSSL,那么編譯它就成為了一個關鍵問題。
2、準備工作(win64為例)
1、下載并安裝 Visual Studio(以 VS 2013 為例)。
2、下載并安裝 ActivePerl,下載地址:http://www.activestate.com/activeperl/downloads ,我下載的版本是5.24.3.2404
安裝過程一律選默認即可。
ActivePerl一個perl腳本解釋器。其包含了包括有 Perl for Win32、Perl for ISAPI、PerlScript、Perl Package Manager四套開發(fā)工具程序,可以讓用戶編寫出適用于unix,windows,linux系統(tǒng)的CGI程序來。
安裝的只是perl的一個解釋程序啦,外觀上也不會發(fā)生什么變化,你在windows的cmd界面里輸入perl -v可查看你所安裝的版本。顯示如下圖:
3、下載并安裝 Nasm 匯編器,下載地址:http://www.nasm.us/ ,我下載的是nasm-2.14-installer-x64.exe
這里安裝完成后,將安裝目錄 C:\Program Files\NASM(以你的安裝目錄為準) 添加到系統(tǒng)環(huán)境變量 Path 中。
配置環(huán)境變量:
右鍵計算機選擇屬性,選擇高級系統(tǒng)設置,選擇高級選項,再選擇右下方環(huán)境變量選項,給系統(tǒng)變量選擇新建,變量名隨便起不沖突即可(如NASM),變量值填寫安裝目錄(如 C:\Program Files\NASM)
??? 注:若桌面沒有計算機選項的可通過控制面板 — 系統(tǒng)和安全 — 系統(tǒng)到該目錄?;蜷_始 — 計算機 — 右鍵 — 選擇屬性。
4、下載并安裝 OpenSSL,下載地址:https://www.openssl.org/source/ ,我下載的版本是 openssl-1.0.2p.tar.gz
下載完成后,將 OpenSSL 包解壓至 C:\openssl-1.0.2p,便可以進行編譯了。
注意: 解壓后的目錄中有兩個文件 - INSTALL.W32、INSTALL.W64,包含了 OpenSSL 的各個編譯步驟。
注意:當前最新版本為openssl-1.1.1.tar.gz,解壓后的目錄中并沒有INSTALL.W32、INSTALL.W64兩個文件,該版本安裝方法具體可參考README和INSTALL兩個文件。
3、編譯OpenSSL
3.1、配置編譯環(huán)境
我們用VS2013來作為編譯工具,使用VS2013對應的命令行進入,操作步驟如下:
開始 — 所有程序 — Visual Studio 2013 — Visual Studio Tools — 選擇一個命令提示工具
進入命令提示符,然后定位至OpenSSL的安裝目錄,如 C:\openssl-1.0.2m
注意:這里不建議使用cmd命令行,使用cmd命令行在執(zhí)行nmake -f ms\nt.mak編譯時,會提示’nmake’ 不是內部或外部命令,也不是可運行的程序。(需要配置環(huán)境變量啥的,沒有試,這里直接使用VS 2013命令行)
3.2、配置編譯文件和模式
輸入如下命令:
perl Configure VC-WIN64A no-asm --prefix=F:\openssl
??? 1
參數(shù)說明:
VC-WIN64A表示Windows 64位系統(tǒng),32位系統(tǒng)請換成VC-WIN32,若要使用debug版本,請使用debug-VC-WIN64A或debug-VC-WIN32
no-asm 表示不用匯編,不設置此屬性,可能會導致編譯不過(建議使用)
–prefix=F:\openssl將其安裝到F盤的openssl文件夾下,省略會安裝在默認路徑下
顯示如下圖:
3.3、生成編譯配置文件
若為Windows 64位系統(tǒng),執(zhí)行
ms\do_win64a.bat
??? 1
若為Windows 32位系統(tǒng),執(zhí)行
ms\do_ms.bat
??? 1
執(zhí)行這一步之后,在ms目錄下會生成nt.mak和ntdll.mak兩個編譯配置文件
nt.mak 用于生成靜態(tài)lib庫
ntdll.mak 用于生成動態(tài)dll庫
3.4、編譯
靜態(tài)庫
nmake -f ms\nt.mak?? ?
??? 1
動態(tài)庫
nmake -f ms\ntdll.mak
??? 1
注:這里也可以直接執(zhí)行如下命令,將靜態(tài)庫或動態(tài)庫直接安裝到指定目錄(或默認目錄):
//靜態(tài)庫
nmake -f ms\nt.mak install
//或
//動態(tài)庫
nmake -f ms\ntdll.mak install
??? 1
??? 2
??? 3
??? 4
??? 5
3.5、測試
測試靜態(tài)庫:
?nmake -f ms\nt.mak test
??? 1
測試動態(tài)庫:
?nmake -f ms\ntdll.mak test
??? 1
若最終顯示 passed all tests 則說明生成的庫正確:
3.6、安裝
安裝靜態(tài)庫:
nmake -f ms\nt.mak install
??? 1
安裝動態(tài)庫:
nmake -f ms\ntdll.mak install
??? 1
編譯、安裝完成后,即可在 F:\openssl目錄下看到生成的相關文件和文件夾,如下圖:
注:F:\openssl目錄為執(zhí)行 perl Configure VC-WIN64A no-asm --prefix=F:\openssl 時指定的目錄,若沒有通過–prefix=指定目錄,會安裝到一個默認目錄(命令行內會有提示),如下圖顯示默認安裝到了 C:\usr\local\ 目錄
3.7、其他
清除上次靜態(tài)庫的編譯,以便重新編譯:
nmake -f ms\nt.mak clean
??? 1
清除上次動態(tài)庫的編譯,以便重新編譯:
nmake -f ms\ntdll.mak clean
————————————————
版權聲明:本文為CSDN博主「mayue_csdn」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權協(xié)議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/mayue_web/article/details/83997969
總結
以上是生活随笔為你收集整理的Windows下编译openssl库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 疯狂的骗局剧情介绍
- 下一篇: windows环境下C语言socket编