openssl生成SSL證書的流程

2021-09-07 14:37:21 字數 3081 閱讀 8251

ssl證書通過在客戶端瀏覽器和web伺服器之間建立一條ssl安全通道(secure socketlayer(ssl),ssl安全協議主要用來提供對使用者和伺服器的認證;對傳送的資料進行加密和隱藏;確保資料在傳送中不被改變,即資料的完整性,現已成為該領域中全球化的標準。由於ssl技術已建立到所有主要的瀏覽器和web伺服器程式中,因此,僅需安裝伺服器證書就可以啟用該功能了)。即通過它可以啟用ssl協議,實現資料資訊在客戶端和伺服器之間的加密傳輸,可以防止資料資訊的洩露。保證了雙方傳遞資訊的安全性,而且使用者可以通過伺服器證書驗證他所訪問的**是否是真實可靠。

ssl**不同於一般的web站點,它使用的是「https」協議,而不是普通的「http」協議。因此它的url(統一資源定位器)格式為「

x509證書一般會用到三類檔案,key,csr,crt。

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

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

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

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

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

特別說明:

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

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

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

.key格式:私有的金鑰

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

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

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

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

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

[plain]view plain

copy

# 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)

伺服器端使用者證書:

[html]view plain

copy

# 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  

客戶端使用者證書:

[plain]view plain

copy

$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 ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key時可能會出錯:

using configuration from /usr/share/ssl/openssl.cfg i am unable to access the ./democa/newcerts directory ./democa/newcerts: no such file or directory 

解決方法:

1)mkdir -p ./democa/newcerts 

2)touch democa/index.txt 

3)touch democa/serial 

4)echo 01 > democa/serial

openssl生成SSL證書的流程

ssl證書通過在客戶端瀏覽器和web伺服器之間建立一條ssl安全通道 secure socketlayer ssl ssl安全協議主要用來提供對使用者和伺服器的認證 對傳送的資料進行加密和隱藏 確保資料在傳送中不被改變,即資料的完整性,現已成為該領域中全球化的標準。由於ssl技術已建立到所有主要的瀏...

openssl生成SSL證書的流程

ssl證書通過在客戶端瀏覽器和web伺服器之間建立一條ssl安全通道 secure socketlayer ssl ssl安全協議主要用來提供對使用者和伺服器的認證 對傳送的資料進行加密和隱藏 確保資料在傳送中不被改變,即資料的完整性,現已成為該領域中全球化的標準。由於ssl技術已建立到所有主要的瀏...

OpenSSL生成自簽名SSL證書

create self signed cert.sh c cn st guangdong l guangzhou o xdevops ou xdevops cn gitlab.xdevops.cn 檢查是否已經安裝openssl openssl version genra 生成rsa私鑰 des3 ...