本篇主要介紹了基于OpenSSL的PKI的PKI數字證書系統實作,利用OpenSSL建立一個CA中心的詳細解決方案和建立的具體步驟,
1、PKI數字證書系統設計
PKI數字證書系統主要包括證書頒發機構CA、注冊機構RA和公共查詢資料庫三個部分,基本框架如下:

2、OpenSSL對傳輸檔案公鑰加密私鑰解密
OpenSSL RSA私鑰生成:
$ openssl genrsa -out private.pem 2048
OpenSSL RSA公鑰生成:
$ openssl rsa -in ./private.pem -pubout -out public.pem
創建file.txt為例,來加密file.txt內容 用公鑰進行加密:
$openssl rsautl -encrypt -in file.txt -inkey public.pem -pubin -out message.en
用私鑰進行解密:
$openssl rsautl -decrypt -in message.en -inkey private.pem -out message.txt
讀取message.txt內容與file.txt進行對照即可驗證
3、OpenSSL對傳輸檔案私鑰簽名公鑰驗證
OpenSSL RSA私鑰生成:$ openssl genrsa -out private.pem 2048
OpenSSL RSA公鑰生成:$ openssl rsa -in ./private.pem -pubout -out public.pem
以file.txt為例,實作對檔案私鑰簽名公鑰驗證
用私鑰簽名:
$openssl dgst -sign private.pem -md5 -out message.sign file.txt
用公鑰驗簽:
$openssl dgst -verify public.pem -md5 -signature message.sign file.txt
終端顯示Verified OK即驗簽成功
4、CA實作程序-總述
OpenSSL實作了安全套接層協議(SSL V2/V3)和傳輸層安全協議(TLS V1),并帶有一個功能完整的、具有通用性的加密技術庫,OpenSSL工具包分為三個部分:SSL函式庫、Crypto函式庫和命令列工具,通過使用OpenSSL構建CA認證中心,
5、CA實作程序-環境搭建
Windows平臺下安裝OpenSSL安裝包開源平臺: http://slproweb.com/products/Win32OpenSSL.html 可以選擇Win64 OpenSSL v1.1.1g Light EXE/MSI版本,對于EXE版本,需要在電腦端配置后環境變數等,等安裝配置好之后,在cmd終端輸入:
$ openssl version 終端顯示如OpenSSL 1.1.1g 等就已經安裝完成
6、CA實作程序-生成數字證書-生成CA私鑰以及自簽名根證書
實作自建立CA,并用自建的CA對產生的數字證書進行簽名,生成CA私鑰以及自簽名根證書具體程序如下:
(1).生成CA私鑰ca-key.pem; 打開互動模式$ openssl 生成CA私鑰:
OpenSSL> genrsa -out ca-key.pem 1024
(2).生成待簽名證書ca-req.csr; 創建證書請求:
OpenSSL> req -new -out ca-req.csr -key ca-key.pem
(3).用CA私鑰進行自簽名,產生x509證書檔案ca-cert.pem; 自簽署證書:
OpenSSL> x509 -req -in ca-req.csr -out ca-cert.pem -signkey ca-key.pem -days 365
(4).生成CA證書:ca-cert.pfx
OpenSSL> pkcs12 -export -clcerts -in ca-cert.pem -inkey ca-key.pem -out ca-cert.pfx
在Windows端可以直接安裝CA根證書
7、CA實作程序-生成數字證書-生成CA私鑰以及自簽名根證書

8、CA實作程序-生成數字證書-生成服務端證書
生成服務端證書具體程序如下:
(1).生成server私鑰; 生成server私鑰:
OpenSSL> genrsa -out server-key.pem 1024
(2).生成待簽名證書; 創建證書請求:
OpenSSL> req -new -out server-req.csr -key server-key.pem
(3).用CA私鑰進行簽名,產生x509證書檔案; 自簽署證書:
OpenSSL> x509 -req -in server-req.csr -out server-cert.pem -signkey server-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 365
( 一般情況在根CA電腦端執行)
(4).將生成的證書保存起來;
9、CA實作程序-生成數字證書-生成客戶端證書
生成服務端證書具體程序與生成服務器證書類似:
(1).生成client私鑰; 生成server私鑰:
OpenSSL> genrsa -out client-key.pem 1024
(2).生成待簽名證書; 創建證書請求:
OpenSSL> req -new -out client-req.csr -key client-key.pem
(3).用CA私鑰進行簽名,產生x509證書檔案; 自簽署證書:
OpenSSL> x509 -req -in client-req.csr -out client-cert.pem -signkey client-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 365
( 一般情況在根CA電腦端執行)
(4).將生成的證書保存起來;
10、創建Https進行服務器證書測驗
在終端執行: $ node index.js

在網站輸入: https://localhost:8000/ 查詢證書

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/256248.html
標籤:訊息安全
