openssl使用詳解

更新时间: 2024-11-29 07:54:31

最佳答案

OpenSSL 是一個開源專案,其組成主要包括一下三個元件:


openssl:多用途的命令列工具


libcrypto:加密演算法庫


libssl:加密模組應用庫,實現了ssl及tls


openssl可以實現:祕鑰證書管理、對稱加密和非對稱加密 。


1、對稱加密

對稱加密需要使用的標準命令為 enc ,用法如下:


openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64]

[-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md]

[-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-engine id]

常用選項有:


-in filename:指定要加密的檔案存放路徑


-out filename:指定加密後的檔案存放路徑


-salt:自動插入一個隨機數作為檔案內容加密,預設選項


-e:可以指明一種加密演算法,若不指的話將使用預設加密演算法


-d:解密,解密時也可以指定演算法,若不指定則使用預設演算法,但一定要與加密時的演算法一致


-a/-base64:使用-base64位編碼格式


示例:

加密:]# openssl enc -e -des3 -a -salt -in fstab -out jiami

解密:]# openssl enc -d -des3 -a -salt -in fstab -out jiami

2、單向加密

單向加密需要使用的標準命令為 dgst ,用法如下:


openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] [-c] [-d] [-hex] [-binary]

[-out filename] [-sign filename] [-keyform arg] [-passin arg] [-verify filename] [-prverify

filename] [-signature filename] [-hmac key] [file...]

常用選項有:


[-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] :指定一種加密演算法


-out filename:將加密的內容儲存到指定檔案中


示例如下:




單向加密除了 openssl dgst 工具還有: md5sum,sha1sum,sha224sum,sha256sum ,sha384sum,sha512sum


示例如下:




3、生成密碼

生成密碼需要使用的標準命令為 passwd ,用法如下:


openssl passwd [-crypt] [-1] [-apr1] [-salt string] [-in file] [-stdin] [-noverify] [-quiet] [-table] {password}

常用選項有:


-1:使用md5加密演算法


-salt string:加入隨機數,最多8位隨機數


-in file:對輸入的檔案內容進行加密


-stdion:對標準輸入的內容進行加密


示例如下:




4、生成隨機數

生成隨機數需要用到的標準命令為 rand ,用法如下:


openssl rand [-out file] [-rand file(s)] [-base64] [-hex] num

常用選項有:


-out file:將生成的隨機數儲存至指定檔案中


-base64:使用base64 編碼格式


-hex:使用16進位制編碼格式


示例如下:




5、生成祕鑰對

首先需要先使用 genrsa 標準命令生成私鑰,然後再使用 rsa 標準命令從私鑰中提取公鑰。


genrsa 的用法如下:


openssl genrsa [-out filename] [-passout arg] [-des] [-des3] [-idea] [-f4] [-3] [-rand file(s)] [-engine id] [numbits]

常用選項有:


-out filename:將生成的私鑰儲存至指定的檔案中


-des|-des3|-idea:不同的加密演算法


numbits:指定生成私鑰的大小,預設是2048


一般情況下祕鑰檔案的許可權一定要控制好,只能自己讀寫,因此可以使用 umask 命令設定生成的私鑰許可權,示例如下:




ras 的用法如下:


openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg]

[-sgckey] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-engine id]

常用選項:


-in filename:指明私鑰檔案


-out filename:指明將提取出的公鑰儲存至指定檔案中


-pubout:根據私鑰提取出公鑰


示例如下:




6、建立CA和申請證書

使用openssl工具建立CA證書和申請證書時,需要先檢視配置檔案,因為配置檔案中對證書的名稱和存放位置等相關資訊都做了定義,具體可參考 /etc/pki/tls/openssl.cnf 檔案。






(1)、建立自簽證書

第一步:建立為 CA 提供所需的目錄及檔案




第二步:指明證書的開始編號


]# echo 01 serial


第三步:生成私鑰,私鑰的檔名與存放位置要與配置檔案中的設定相匹配;




第四步:生成自簽證書,自簽證書的存放位置也要與配置檔案中的設定相匹配,生成證書時需要填寫相應的資訊;




命令中用到的選項解釋:


-new:表示生成一個新證書籤署請求


-x509:專用於CA生成自簽證書,如果不是自簽證書則不需要此項


-key:生成請求時用到的私鑰檔案


-out:證書的儲存路徑


-days:證書的有效期限,單位是day(天),預設是365天


(2)頒發證書

在需要使用證書的主機上生成證書請求,以 httpd 服務為例,步驟如下:


第一步:在需要使用證書的主機上生成私鑰,這個私鑰檔案的位置可以隨意定


第二步:生成證書籤署請求


第三步:將請求透過可靠方式傳送給 CA 主機




第四步:CA 伺服器拿到證書籤署請求檔案後頒發證書,這一步是在 CA 伺服器上做的




檢視證書資訊的命令為:




(3)吊銷證書

吊銷證書的步驟也是在CA伺服器上執行的,以剛才新建的 httpd.crt 證書為例,吊銷步驟如下:


第一步:在客戶機上獲取要吊銷證書的 serial 和 subject 資訊


第二步:根據客戶機提交的 serial 和 subject 資訊,對比其餘本機資料庫 index.txt 中儲存的是否一致


第三步:執行吊銷操作




第四步:生成吊銷證書的吊銷編號 (第一次吊銷證書時執行)


]# echo 01 /etc/pki/CA/crlnumber


第五步:更新證書吊銷列表


]# openssl ca -gencrl -out /etc/pki/CA/crl/ca.crl


檢視 crl 檔案命令:


]# openssl crl -in /etc/pki/CA/crl/ca.crl -noout -text

1. 首先需要使用 openssl 生成一個 2048 位的金鑰 rsa.key 檔案 (rsa.key 金鑰檔案中包含了私鑰和公鑰)


2. 然後從 rsa.key 金鑰檔案中提取出公鑰 pub.key


3. 使用 pub.key 公鑰加密一個檔案 (data.zip 為原始檔案,back.zip 為加密之後的檔案)


4. 使用 rsa.key 私鑰解密一個檔案 (back.zip 為加密的檔案,data.zip 為解密之後的檔案)


5.上面的加密對大檔案就不適用了,可以考慮使用


解密使用


其中,mykey.bin可以使用命令生成

繼續學習加密貨幣

魔獸世界非主流聲望都有哪些

  我補充下  幾個戰場聲望:1.銀翼要塞2.阿拉索聯軍3.雷矛衛隊打戰場就OK  灰舌死誓者  任務只有黑暗神殿入門任務線,開始於影月谷占星者/奧爾多提供的“巴爾裡石板”,完成幾個步驟後就會被要求前往守望者牢籠的密室找到阿卡瑪。  除了任...


100m和500m的寬頻能用千m路由器嗎

理論上來講可以用1000m的路由器,但是沒這個人力要。百兆光纖使用千兆路由器無法提高有線的頻寬。百兆光纖寬頻,受制於有線介面的瓶頸,是無法提高網速的。百兆光纖寬頻,通常運營商提供的光貓都是百兆光貓。百兆光貓的上聯口是155M光口,LAN口是...


metro什麼牌子手機

華為metro1000是華為的一款光傳輸裝置,原來叫155/622H,群路為155Mbit/s光口或622Mbit/s光口。支路為2Mbit/s電口或10M/100MRJ45型網口。該裝置不支援2.5Gbit/s光口和10Gbit/s光口。...


pi會讀取哪些資訊?

pi可以讀取各種感測器、外部裝置、網路資料等資訊。因為pi具備良好的擴充套件性和相容性,在連線各種外部裝置的同時,也可以透過網路讀取網際網路上的資料。此外,pi還可以透過GPIO讀取模擬訊號、數字訊號等資訊,進一步擴充套件其讀取範圍。pi的...


交換技術的種類和優缺點有哪些

交換技術有三種,分別是:電路交換、報文交換、分組交換。它們的優缺點:一.電路交換的優缺點:電路交換方式的優點是資料傳輸可靠、迅速,資料不會丟失,且保持原來的序列。缺點是在某些情況下,電路空閒時的通道容量被浪費;另外,如資料傳輸階段的持續時間...


網際網路與區塊鏈的區別

1.網際網路是資訊機器,區塊鏈是事實機器網際網路是資訊的機器,以更低的成本、更高的效率讓大家互相傳遞資訊。區塊鏈的資料結構,以及密碼學、時間戳等技術的組合,保證了一個數據上鍊之後就不可篡改、不可撤銷,但是可追蹤。因此相比網際網路來說,區塊鏈...


EVP是什麼意思

EVP可以有多個含義,以下是其中幾個常見的:1.企業價值管理(EnterpriseValueManagement):指企業透過戰略規劃、資源配置、業務流程最佳化等手段,以實現企業價值的最大化為目標的管理方法論。2.電子現金(Electron...


pci匯流排屬於乙太網嗎

PCI匯流排不屬於乙太網,它是一種用於連線計算機內部硬體裝置的匯流排標準。PCI匯流排最初由英特爾公司開發,後來被PCISpecialInterestGroup(SIG)推廣和標準化,成為了一種廣泛使用的計算機匯流排標準。PCI匯流排可以連...


現在的顯示卡多出的一個白色介面是什麼功能

現在的顯示卡多出的一個白色介面通常是DisplayPort介面。DisplayPort是一種數字影片介面標準,用於連線計算機和顯示器,支援高解析度、高重新整理率和高色深度的影片輸出。與HDMI介面相比,DisplayPort介面具有更高的頻...


qiwi wallet的優缺點

關於這個問題,QiwiWallet是俄羅斯最大的電子錢包服務提供商之一,它提供了一種方便快捷的支付和轉賬方式。以下是QiwiWallet的優缺點:優點:1.方便快捷:使用者可以透過手機應用程式或網站輕鬆進行支付和轉賬,無需攜帶現金或信用卡。...