openssl
是乙個開源專案,其組成主要包括一下三個元件:
openssl
:多用途的命令列工具
libcrypto
:加密演算法庫
libssl
:加密模組應用庫,實現了ssl及tls
平時我們使用openssl
最多的莫過於使用指令了,而最為常見的幾個指令如下:
genrsa
生成rsa引數
req
x509
rsa
ca
平時主要用來生成私鑰,選擇使用的演算法、對稱加密密碼和私鑰長度來生成私鑰。
基本用法:
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...