Openssl生成證書

2021-09-29 11:27:49 字數 3598 閱讀 4891

ssl證書用於在客戶端瀏覽器和web伺服器之間建立一條ssl安全通道(secure socket layer)。ssl安全協議主要用來提供對使用者和伺服器的認證;對傳送的資料進行加密和隱藏;確保資料在傳送中不被改變,即資料的完整性,現已成為該領域中全球化的標準。通過伺服器端和客戶端安裝證書可以啟用ssl協議,實現資料資訊在客戶端和伺服器之間的加密傳輸,防止以後的資料資訊的洩露。保證了雙方傳遞資訊的安全性,而且使用者可以通過伺服器證書驗證他所訪問的**是否是真實可靠。ssl**不同於一般的web站點,它使用「https」協議。
x509證書一般會用到三類檔案,key、csr和crt。

key是私用金鑰,openssl格式,通常是rsa演算法。

csr是證書請求檔案,用於申請證書。在製作csr檔案的時候,必須使用自己的私鑰來簽署申請,還可以設定乙個金鑰。

crt是ca認證後的證書檔案(windows下面的csr,其實是crt),簽署人用自己的key給你簽署的憑證。

1.首先要有乙個ca根證書,然後用ca根證書來簽發使用者證書。

2. 使用者進行證書申請:一般先生成乙個私鑰,然後用私鑰生成證書請求(證書請求裡應含有公鑰資訊),再利用證書伺服器的ca根證書來簽發證書。

(1)自簽名證書(一般用於頂級證書、根證書): 證書的名稱和認證機構的名稱相同.

(2)根證書:根證書是ca認證中心給自己頒發的證書,是信任鏈的起始點。任何安裝ca根證書的伺服器都意味著對這個ca認證中心是信任的。

(3)數字證書則是由證書認證機構(ca)對證書申請者真實身份驗證之後,用ca的根證書對申請人的一些基本資訊以及申請人的公鑰進行簽名(相當於加蓋發證書機構的公章)後形成的乙個數字檔案。數字證書包含證書中所標識的實體的公鑰(就是說你的證書裡有你的公鑰),由於證書將公鑰與特定的個人匹配,並且該證書的真實性由頒發機構保證(就是說可以讓大家相信你的證書是真的),因此,數字證書為如何找到使用者的公鑰並知道它是否有效這一問題提供了解決方案。

.key格式:私有的金鑰

.csr格式:證書簽名請求(證書請求檔案),含有公鑰資訊,certificate signing request的縮寫

.crt格式:證書檔案,certificate的縮寫

.crl格式:證書吊銷列表,certificate revocation list的縮寫

.pem格式:用於匯出,匯入證書時候的證書的格式,有證書開頭,結尾的格式

生成ca私鑰(.key)–>生成ca證書請求(.csr)–>自簽名得到根證書(.crt)(ca給自已頒發的證書)。

#generate ca private key 

openssl genrsa -out ca.key 2048 # generate csr

openssl req -new -key ca.key -out ca.csr

# generate self signed certificate(ca 根證書)

openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

生成私鑰(.key)–>生成證書請求(.csr)–>用ca根證書簽名得到證書(.crt)

伺服器端使用者證書:

# private key

$openssl genrsa -des3 -out server.key 1024

# generate csr

$openssl req -new -key server.key -out server.csr

# generate certificate

$openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key

客戶端使用者證書:

$openssl genrsa -des3 -out client.key 1024 

$openssl req -new -key client.key -out client.csr

$openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key

生成pem格式證書:

用到pem格式證書時,合併證書檔案(crt)和私鑰檔案(key)來生成

$cat client.crt client.key> client.pem

$cat server.crt server.key > server.pem

此時得到:

服務端證書:ca.crt, server.key, server.crt, server.pem

客戶端證書:ca.crt, client.key, client.crt, client.pem

附:openssl基本操作

生成rsa私鑰(無加密)

openssl genrsa -out rsa_private.key 2048
生成rsa公鑰

openssl rsa -in rsa_private.key -pubout -out rsa_public.key
檢視私鑰明細(-pubin引數檢視公鑰明細)

openssl rsa -in rsa_private.key -noout -text
生成 rsa 私鑰和自簽名證書:

req是證書請求的子命令,-newkey rsa:2048 -keyout private_key.pem表示生成私鑰(pkcs8格式),-nodes 表示私鑰不加密,若不帶引數將提示輸入密碼;-x509表示輸出證書,-days365 為有效期,此後根據提示輸入證書擁有者資訊;若執行自動輸入,可使用-subj選項;

openssl req -newkey rsa:2048 -nodes -keyout rsa_private.key -x509 -days 365 -out cert.crt
使用已有rsa 私鑰生成自簽名證書:

-new 指生成證書請求,加上-x509 表示直接輸出證書,-key 指定私鑰檔案

openssl req -new -x509 -days 365 -key rsa_private.key -out cert.crt
使用 ca 證書及ca金鑰對請求簽發證書進行簽發,生成 x509證書

openssl x509 -req -days 3650 -in server.csr -ca ca.crt -cakey ca.key -passin pass:111111 -cacreateserial -out server.crt
檢視證書明細

openssl x509 -in cert.crt -noout -text
轉換證書編碼格式

openssl x509 -in cert.cer -inform der -outform pem -out cert.pem
檢視csr的細節

openssl req -noout -text -in server.csr

OpenSSL生成證書

要生成證書的目錄下建立幾個檔案和資料夾,有.democa democa newcerts democa index.txt democa serial,在serial檔案中寫入第乙個序列號 01 1.生成x509格式的ca自簽名證書 opensslreq new x509 keyout ca.key...

openssl 生成 證書

x509 證書一般會用到三類文,key,csr,crt。key是私用金鑰 openssl 格,通常是 rsa演算法。csr是證書請求檔案,用於申請證書。在製作 csr檔案的時,必須使用自己的私鑰來簽署申,還可以設定乙個金鑰。crt是ca 認證後的證書文,windows 下面的,其實是 crt 簽署人...

OpenSSL生成證書

1.生成x509格式的ca自簽名證書 opensslreq new x509 keyout ca.key out ca.crt 可以加證書過期時間選項 days 365 2.生成服務端的私鑰 key檔案 及csr 檔案 openssl genrsa des3 out server.key 1024 ...