1. 程式人生 > >詳解win10 64位系統下是如何安裝OpenSSL? 及通過openssl工具生成RSA的公鑰和私鑰

詳解win10 64位系統下是如何安裝OpenSSL? 及通過openssl工具生成RSA的公鑰和私鑰

預備工具:

安裝環境:Windows10旗艦版 -64位  +  Microsoft Visual Studio2013
相關軟體:vs2013、ActivePerl-5.24.3、openssl-1.0.1o.tar.g
下載地址:vs2013ActivePerl-5.24.3openssl-1.0.1o.tar.g

開始安裝:

2、ActivePerl的安裝:
ActivePerl的安裝是比較簡單的,根據提示一步一步進行安裝即可,安裝過程軟體會自動設定環境變數。要確認是否安裝成功,我們可以利用cmd命令列的形式輸入指令進入到安裝目錄,比如安裝在C:\Perl64\下,進入到C:\Perl64\eg目錄,輸入“perl example.pl

”, 如果出現如下圖所示的:"Hello from ActivePerl!",則表示軟體安裝成功。

3、openssl的安裝(重點):
>>
 把下載好的openssl-1.0.1o.tar.g解壓放到C盤中,所在目錄為:C:\openssl-1.0.1o。

>> 進入vs2013的安裝目錄(我的為:F:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts), 找到"VS2013 開發人員命令提示"可執行檔案。

>> 雙擊開啟該視窗, 輸入命令cd C:\openssl-1.0.1o

進入到openssl的目錄下

>> 執行Configure命令(配置編譯引數),輸入命令:perl Configure VC-WIN32
注意:當你下載的openssl是高版本的話,需要在這裡加上no-asm,命令為:perl Configure VC-WIN32 no-asm --prefix=C:\openssl-1.0.2g 表示不使用匯編,如果你不加上的話,在執行nmake命令時會出錯。這裡是編譯32位的庫,所示引數為VC-WIN32。


                                              ↓

>> 執行ms\do_ms

命令

>> 執行nmake -f ms\ntdll.mak命令進行編譯生成OpenSSL動態庫
提示:此時會編譯大概兩分鐘左右,耐心等待。

>> 測試,執行命令:nmake -f ms\ntdll.mak test 進行測試
提示:檢查上一步編譯是否成功,如果成功則最後顯示“passed all tests”字樣


                                                                         ↓

>> 執行命令:nmake -f ms\ntdll.mak install 進行安裝動態庫
提示:成功則會在C盤跟目錄下生成目錄\usr\local\ssl, 並且在目錄下生成bin、include、lib這三個資料夾


                                                                        ↓

到此為止,OpenSSL就安裝成功啦。

常用的幾個命令:

測試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

下面講一下利用openssl生成RSA公私金鑰對。

在Windows環境下,開啟OPENSSL安裝目錄bin檔案下面的openssl.exe。
1)生成RSA私鑰:
輸入命令genrsa -out rsa_private_key.pem 1024,並回車, 該命令會生成1024位的私鑰。   
此時,我們可以在bin資料夾中看到一個檔名為rsa_private_key.pem的檔案,用記事本方式開啟它, 可以看到-----BEGIN RSA PRIVATE KEY-----開頭,-----END RSA PRIVATE KEY-----結尾的沒有換行的字串,這個就是原始的私鑰。
2)  生成RSA公鑰:
輸入命令rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem,並回車。
此時,我們可以在bin資料夾中看到一個檔名為rsa_public_key.pem的檔案,用記事本方式開啟它,可以看到-----BEGIN PUBLIC KEY-----開頭, -----END PUBLIC KEY-----結尾的沒有換行的字串,這個就是公鑰。

3)把RSA私鑰轉換成PKCS8格式:
輸入命令pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt,並回車輸出的結果就是PKCS8格式的私鑰。
注意:java和c#應使用PKCS8格式私鑰,php應使用未轉碼的私鑰。其他語言可自行確認一下。