當前位置:編程學習大全網 - 源碼下載 - SSL證書簽發

SSL證書簽發

HTTPS = HTTP + TLS/SSL

SSL:Secure Sockers Layer,安全套接層

TLS:標準化之後的SSL

提供隱私和數據兩個通信實體之前的完整性

由兩層組成:TLS記錄協議(TLS Record)和TLS握手協議(TLS Handshake)

SSL的核心在於提供安全可信的通訊

實際應用中,通常有單向認證和雙向認證兩種實現方式

1 客戶端:發送客戶端SSL版本信息等

2 服務端:返回SSL版本信息等及服務器公鑰

3 客戶端:校驗證書是否合法

驗證證書是否過期、CA是否可靠等

4 客戶端:發送對稱加密方案給服務端

5 服務端:選擇加密方式

6 服務端:將加密方案 明文 發送給客戶端

7 客戶端:產生隨機碼,生成對稱加密密鑰,使用服務端公鑰加密,發送服務端

8 服務端:使用私鑰解密,獲得對稱加密密鑰

9 握手結束,對稱加密,安全通信

1 客戶端:發送客戶端SSL版本信息等

2 服務端:返回SSL版本信息等及服務器公鑰

3 客戶端:校驗證書是否合法

4 客戶端: 將自己的證書和公鑰發送至服務端

5 服務端: 校驗客戶端證書,獲得客戶端公鑰

6 客戶端:發送對接加密方案給服務端

7 服務端:選擇加密方式

8 服務端:將加密方案 使用客戶端公鑰加密後 發送給客戶端

9 客戶端:使用私鑰解密,獲得加密方式,產生隨機碼,生成對稱加密密鑰,使用服務端公鑰加密後,發送給服務端

10 服務端:使用私鑰解密,獲得對稱加密密鑰

11 握手結束,對稱加密,安全通信

SSL核心的概念:ca、私鑰、公鑰、證書

私鑰默認格式為pkcs1,壹個簡化的私鑰生成命令:

openssl genrsa -out private.pem 3072

java對私鑰格式有 要求 ,需要轉換為pkcs8格式,轉換命令:

openssl pkcs8 -topk8 -inform PEM -in private.pem -outform PEM -nocrypt -out private-pkcs8.pem

認證中心,第三方認證提供方,為證書提供可靠性認證

開發過程中壹般使用自簽發證書進行測試,再使用正式簽發的證書

CA在使用時,主要是使用ca證書,ca證書由ca key簽發而來

要素: CA私鑰、CA CSR、簽發證書

中間根據提示輸入 Country Name 、 State or Province Name 等等

組成:CA根證書、簽發客戶端證書

使用 OpenSSL 創建客戶端證書時,請註意

創建私鑰時,請將長度指定為 4096

創建證書時,對於 -extensions 參數,指定 usr_cert

生成私鑰

openssl genrsa -out product.key 3072

生成證書簽發請求

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

將證書簽發請求發送至CA,簽發證書,這壹步壹般無法感知,大概的意思就是執行下面的簽發命令

openssl ca -in product.csr -out product.crt -days 365

上面這壹條還是隱藏了很多細節,再看下面的

簽名過程需要 CA 的證書和私鑰參與,最終頒發壹個帶有 CA 簽名的證書

openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in product.csr -out product.crt

這個 product.crt 就是正式可以使用的證書了

TLS單向認證和雙向認證的區別

  • 上一篇:尤裏卡源代碼大全
  • 下一篇:改編《壹個陌生女人的來信》
  • copyright 2024編程學習大全網