OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

什麼是OpenSSL

OpenSSL是為網絡通信提供安全及數據完整性的一種安全協議,囊括了主要的密碼算法、常用的密鑰和證書管理安裝功能以及SSL協議,並提供豐富的應用程序供測試或其它目的使用。

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

OpenSSL採用C語言作為開發語言,這使得OpenSSl具有非常優秀的跨平臺性能。它支持Linux, Windows, Mac, VMS等多個平臺,這使得OpenSSL具有非常廣泛的適用性。如:Apache 使用它加密 HTTPS,OpenSSH 使用它加密 SSH。

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

如何在Windows系統下安裝OpenSSL

1.下載地址:http://slproweb.com/products/Win32OpenSSL.html

2.OpenSSL支持 32 位和 64 位。這個需要根據自己系統的實際情況選擇,這裡我下載的是 Win64 OpenSSL v1.1.0g進行安裝。

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

3.下載完成之後就可以進行安裝。

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

4.安裝完成後進行環境變量配置。例如OpenSSL安裝在C:\OpenSSL-Win64目錄下,則將C:\OpenSSL-Win64\bin;複製到path中。(Note:下圖為Windows10系統下環境變量配置的配圖。

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

5.打開cmd命令窗口,輸入OpenSSL version。如果顯示版本號,那麼恭喜你安裝成功,否則安裝失敗。

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

如何使用OpenSSL

學習一門新技術時,很多人首先會想它有沒有為我們提供一些help。例如之前我們講解的PowerShell中的Get-Help。那OpenSSL有沒有為我們提供呢? OpenSS作為一個強大的安全套接字層密碼庫,答案肯定是有。OpenSSL為我們提供了OpenSSL help這個強大的命令,讓我可以概覽OpenSSL的所有命令。如OpenSSL help(下面的截圖只顯示了部分內容)

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

使用OpenSSL xxx -help可以查看具體一條命令的用法以及它的參數(Note: xxx為具體命令)。如OpenSSL md5 -help。(下面的截圖只顯示了部分內容)

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

OpenSSL為我們提供瞭如此多命令,下面是對它命令的幾種歸類:

1)Standard commands為我們列出了OpenSSL所有的命令,包括rsa密碼,ca證書以及模擬TLS協議。

·使用OpenSSL獲取服務器的TLS/SSL證書

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

·利用OpenSSL製作一張自己的證書

a)創建一個目錄用於存放ca文件以及將要生成的證書文件,本例中創建的目錄為:C:\openSSL\selfsign

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

b)執行OpenSSL的命令:OpenSSL genrsa -out rea.key 2048生成證書的key文件,如下圖所示。

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

c)使用OpenSSL的命令:OpenSSL req -new -key rsa.key -out rsa.csr生成證書請求文件。

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

d)使用OpenSSL的命令:OpenSSL x509 –req –days 365 –in rsa.csr –signkey rsa.key –out rsa_cate.cer生成證書文件。

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

e) 在C:\openSSL\selfsign目錄下我們就可以看到自己製作的證書。

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

2)Message Digest commands用來計算數據摘要,大概的意思就是對數據進行計算,求得一個唯一的值,如MD5碼。

·求文件的MD5碼。其中test.txt是一個文本測試文件。如OpenSSL dgst -md5 test.txt

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

·求文件的-sha512散列值。如OpenSSL dgst -sha512 test.txt

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

3)Cipher commands為我們提供了多種不同算法進行加密。

·使用bf-cbc算法加密。如OpenSSL enc -bf-cbc -in test.txt -out test.bf-cbcencNote: 在過程中輸入密碼,經過兩次確認,生成加密文件。記住密碼,我們要用密碼解密

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

·使用bf-cbc算法解密。如OpenSSL enc -bf-cbc -in test.txt -out test.bf-cbcenc

Note: 過程中輸入加密時使用的密碼,解密後生成新文件。

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

比較兩個文件:

OpenSSL,一款強大的密碼學和SSL證書管理工具,功能大到你想象!

總結

知易行難,大家看完了上面的文章後,建議大家安裝文章提供的步驟,進行練習,我想肯定有意想不到的收穫。

如果大家在學習過程中有任何的疑問,請關注我並給我私信留言,我會把其他的重要的學習資料和大家一起分享。


分享到:


相關文章: