準備工具
- VC2010:請自行安裝Visual Studio 6、Visual Studio 2010或其他版本
- Perl:請自行依據自己機器使用的Windows環境,下載對應的x86或x64版本的ActivePerl
- OpenSSL:下載OpenSSL原始碼
- NASM或MASM組合語言組譯器:
NASM是一種可攜性高且可跨多個作業系統平台的組合語言組譯器,下載。
MASM微軟推行的組合語言組譯器,不具備跨平台的特性,僅能在Intel平台上使用,下載。
- ActivePerl安裝完成後,開啟Visual Studio Command Prompt (2010),輸入perl -v,如果有顯示perl的版本,表示ActivePerl安裝完成。若沒有顯示perl的版本,請重開機後再將此步驟重做一次即可。
- NASM提供兩種方式安裝,一種需要透過exe安裝,另一則為直接使用已build好的exe,若是使用官網提供的已build好套件,僅需將套件中的exe存放至預設安裝路經下C:\Program Files (x86)\NASM,最後再設定環境變數即可,如下操作。 電腦 -> 系統內容 -> 進階系統設定 -> 環境變數,在系統變數欄位裡有一個變數名為Path,在變數值欄位裡的最後面先加一個分號 ";",在分號後面加入NASM資料夾的路徑C:\Program Files (x86)\NASM
- 開啟Visual Studio Command Prompt (2010)視窗,切換至解壓縮的OpenSSL資料夾。
- 設定編譯OpenSSL.exe Configure設定。
x86環境使用:perl Configure VC-WIN32
x64環境使用:perl Configure VC-WIN64A
P.S. 若有需要將Build的好OpenSSL.exe及其相關檔案存其他路徑,可用以下的作法。 - 建立Makefile文件,使用NASM組合語言編譯ms\do_nasm 如果使用MASM,接著輸入:ms\do_masm
- 選擇OpenSSL.exe編譯的類型 動態連結:nmake -f ms\ntdll.mak
- 驗證編譯好的檔案是否可以正常運作(此步驟可略過不執行) 動態測試:nmake -f ms\ntdll.mak test
- 安裝編譯好的檔案 動態安裝:nmake -f ms\ntdll.mak install
- 若要清除已編譯好的檔案,可參考如下指令 動態清除:nmake -f ms\ntdll.mak clean
在VC-WIN32或VC-WIN64A後面加上--prefix=<資料夾路徑>。
x86環境使用:perl Configure VC-WIN32 --prefix=C:\TestOpenSSL
x64環境使用:perl Configure VC-WIN64A --prefix=C:\TestOpenSSL
如果使用NASM,接著輸入:ms\do_nasm
如果不使用組合語言編譯器,輸入:ms\do_ms
靜態連結:nmake -f ms\nt.mak
P.S. 編譯過程發生錯誤,參考如下方式處理
(1) 確認NASM是否有添加環境變數討系統
(2) 環境變數已添加,請重開機再試一次
靜態測試:nmake -f ms\nt.mak test
靜態安裝:nmake -f ms\nt.mak install
P.S.此部分完成後,若在步驟2沒有設定需要另外輸出的資料夾路徑,將會在openssl資料夾外產生一個user的資料夾來存放openssl.exe、libeay32.dll、、ssleay32.dll
靜態清除:nmake -f ms\nt.mak clean
動態編譯檔案輸出目錄\openssl\out32dll
靜態編譯檔案輸出目錄\openssl\out32
Q & A
Q:當移出openssl.exe至其他資料夾執行時,若出現WARNING: can't open config file: /usr/local/ssl/openssl.cnf訊息,該如何處理?
A:將openssl.cnf所在的路徑,存入環境變數OPENSSL_CONF即可。
set OPENSSL_CONF=%CD%\openssl.cnf
沒有留言:
張貼留言