openssl的介紹和使用

2021-09-13 19:02:12 字數 4143 閱讀 5539

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

openssl:多用途的命令列工具

libcrypto:加密演算法庫

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

平時我們使用openssl最多的莫過於使用指令了,而最為常見的幾個指令如下:

genrsa生成rsa引數

reqx509rsaca平時主要用來生成私鑰,選擇使用的演算法、對稱加密密碼和私鑰長度來生成私鑰。

基本用法:

openssl genrsa [args] [numbits]
args1 對生成的私鑰檔案是否要使用加密演算法進行對稱加密: 

-des : cbc模式的des加密

-des3 : cbc模式的3des加密

-aes128 : cbc模式的aes128加密

-aes192 : cbc模式的aes192加密

-aes256 : cbc模式的aes256加密

args2 對稱加密密碼

-passout passwords

其中passwords為對稱加密(des、3des、aes)的密碼(使用這個引數就省去了console互動提示輸入密碼的環節)

args3 輸出檔案

-out file : 輸出證書私鑰檔案

[numbits]: 金鑰長度,理解為私鑰長度

生成乙個2048位的rsa私鑰,並用des3加密(密碼為123456),儲存為server.key檔案

openssl genrsa -des3 -passout pass:123456 -out server.key   1024 

// -des3 是第乙個引數args1;

// -passout pass:123456 是第二個引數寫法 args2

// -out server.key 第三個引數args3;

// 2048 最後乙個[numbits]引數

req的基本功能主要有兩個:生成證書請求和生成自簽名證書,當然這並不是其全部功能,但是這兩個最為常見;

常見使用方法:

openssl req [args] outfile
args1 是輸入輸入檔案格式:-inform arg

-inform der 使用輸入檔案格式為der

-inform pem 使用輸入檔案格式為pem

args2 輸出檔案格式:-outform arg

-outform der 使用輸出檔案格式為der

-outform pem 使用輸出檔案格式為pem

args3 是待處理檔案

-in inputfilepath

args4 待輸出檔案

-out outputfilepath

args5 用於簽名待生成的請求證書的私鑰檔案的解密密碼

-passin passwords

args6 用於簽名待生成的請求證書的私鑰檔案

-key file

args7指定輸入金鑰的編碼格式 -keyform arg

-keyform der

-keyform net

-keyform pem

args8 生成新的證書請求

-new

args9輸出乙個x509格式的證書,簽名證書時使用

-x509

args10使用x509簽名證書的有效時間

-days // -days 3650 有效期10年

args11生成乙個bits長度的rsa私鑰檔案,用於簽發【生成私鑰、並生成自簽名證書】

-newkey rsa:bits

args12設定hash演算法-[digest]【生成私鑰指定的hash摘要演算法】

-md5

-sha1 // 高版本瀏覽器開始不信任這種演算法

-md2

-mdc2

-md4

args13指定openssl配置檔案,很多內容不容易通過引數配置,可以指定配置檔案

-config filepath

args14 顯示格式txt【用於檢視證書、私鑰資訊】

-text

使用的案例:利用私鑰生成證書請求csr

openssl req -new -key server.key -out server.csr
使用案例:利用私鑰生成自簽名證書

openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
x509是乙個功能很豐富的證書處理工具。可以用來顯示證書的內容,轉換其格式,給csr簽名等x.509證書的管理工作;

用法如下:

openssl x509 [args]
args1 是輸入輸入檔案格式:-inform arg

-inform der 使用輸入檔案格式為der

-inform pem 使用輸入檔案格式為pem

args2 輸出檔案格式:-outform arg

-outform der 使用輸出檔案格式為der

-outform pem 使用輸出檔案格式為pem

args3 是待處理x509證書檔案

-in inputfilepath

args4 待輸出x509證書檔案

-out outputfilepath

args5表明輸入檔案是乙個"請求簽發證書檔案(csr)",等待進行簽發

-req

args6簽名證書的有效時間

-days // -days 3650 有效期10年

args7 指定用於簽發請求證書的根ca證書

-ca arg

args8 根ca證書格式(預設是pem)

-caform arg

args9 指定用於簽發請求證書的ca私鑰證書檔案

-cakey arg

args10 指定根ca私鑰證書檔案格式(預設為pem格式)

-cakeyform arg

args11 指定序列號檔案(serial number file)

-caserial arg

args12 如果序列號檔案(serial number file)沒有指定,則自動建立它

-cacreateserial

args13設定hash演算法-[digest]【生成私鑰指定的hash摘要演算法】

-md5

-sha1 // 高版本瀏覽器開始不信任這種演算法

-md2

-mdc2

-md4

使用例項: 使用根ca證書[ca.crt]和私鑰[ca.key]對"請求簽發證書"[server.csr]進行簽發,生成x509格式證書

openssl x509 -req -days 3650 -in server.csr -ca ca.crt -cakey ca.key -cacreateserial -out serverx509.crt
使用例項:

為什麼google急著殺死加密演算法sha-1;

google官方部落格宣布,將在chrome瀏覽器中逐漸降低sha-1證書的安全指示。但有意思的是google.com目前使用的也是sha-1簽名的證書,但證書將在3個月內過期,google將從2023年起使用sha-2簽名的證書。sha-1演算法目前尚未發現嚴重的弱點,但偽造證書所需費用正越來越低。
原有的簡單自簽名證書在chrome裡面不好使了,提示missing_subjectaltname

missing_subjectaltname問題解決;

參考3:openssl介紹

Linux下OpenSSL的介紹和安裝

openssl 是乙個功能豐富及自包含的安全開源工具箱,它提供的主要功能為ssl協議實現 包括sslv2 sslv3和tlsv1 大量軟演算法 對稱 非對稱 摘要 大數運算 非對稱演算法金鑰生成 asn.1編譯碼庫 證書請求 pkcs10 編譯碼 數字證書編譯碼 crl編譯碼 ocsp協議 數字證書...

隨筆 openssl證書的生成和使用

證書類別 根證書 生成伺服器證書,客戶端證書的基礎。自簽名。伺服器證書 由根證書簽發。配置在伺服器上。客戶端證書 由根證書簽發。配置在伺服器上,並傳送給客戶,讓客戶安裝在瀏覽器裡。要注意,1.伺服器證書的cn要和servername一致,否則啟動httpd時有警告。2.瀏覽器安裝客戶端證書時,需要用...

使用Python和OpenSSL簡單模擬加密通訊

本文使用python和檔案系統模擬保密通訊的整個過程 本階段完成系統初始狀態模擬,直接看 import os,shutil from crypto.cipher import des3,xor defxorencode data,key mm xor.new key cc mm.encrypt da...