基於libevent的TLS單向認證CS通訊驗證

2022-06-25 02:12:09 字數 1666 閱讀 2958

pki(public key infrastructure)公鑰基礎設施

ca (certificate of authority) 認證中心

easy-rsa是openvpn下管理金鑰的乙個工具,它是以shell寫成,主要是指令碼呼叫openssl命令來實現。

ubuntu18.04 apt安裝的是2.2.2版本,相關的工具指令碼比較分散,ubuntu20.04使用的是3.0.6版本,相關工具都統一到了easyrsa乙個指令碼裡面。ubuntu20.04 easy-rsa3.0.6使用教程,我的機器是ubuntu18.04,使用方法:

easy-rsa安裝在/usr/share/easy-rsa目錄,直接在此目錄下操作也是可以的,但是需要root許可權,不方便。一般使用make-cadir命令來建立自己的ca目錄

make-cadir myca
make-cadir這個工具也是乙個shell指令碼,它幹的事情就是建立你指定的目錄,然後在此目錄下建立一些符號鏈結,連線到/usr/share/easy-rsa目錄下的各檔案,而對應的配置檔案則直接拷貝過來。

根證書在本地

​ 對於ca在本地建立,server證書建立也在同乙個機器上時,使用指令碼./build-key-server

./build-key-server myserver
中間會報index.txt.attr檔案找不到的錯誤,這好像是openssl版本帶來的問題,easy-rsa 2.2.2對openssl1.1.x支援不好,這也是為什麼預設的openssl配置檔案裡面只有openssl-1.0.0.cnf,可以不管。生成了myserver.*檔案。myserver.crt這個檔案在tls協商過程中會被傳送給客戶端。

根證書不在本地(此方法生成的證書purposes有問題)

./build-req myserver
按照你的實際情況填寫資訊,最終會在keys目錄下新生成2個檔案myserver.csrmyserver.keycsr即certificate sign request,證書簽發請求。具體的操作是ca機構搭建好它的pki後(pc1),需要搭建伺服器的人在自己電腦上(pc2)生成證書請求檔案,然後把證書請求檔案傳送給ca機構(pc1),ca機構使用自己的金鑰處理一下這個檔案,生成被他簽名加密的證書發放給你(pc2)。

使用openssl工具自帶的伺服器,客戶端測試工具

server端:

openssl s_server -cafile ca.crt -cert myserver.crt -key myserver.key -port 12345
client端:

openssl s_client -cafile ca.crt -connect 127.0.0.1:12345 -verify 2
sudo apt install libevent-2.1-6 libevent-dev -y

基於事件的開源網路庫 libevent 應用例項

本文例子不加修改在windows下執行 須定義巨集win32,鏈結ws2 32.lib,libevent core.lib 稍加修改 例如去掉windows所特有的socket初始化 可執行於linux。該例子建立了乙個event base,在此base上,增加了兩個event,也就是設定了兩個定時...

基於TLS協議的秘鑰管理與傳輸

1,秘鑰管理 加密系統最重要的環節 如何保證秘鑰的安全,本方案的設計思想主要是,解密程式不進行秘鑰的儲存,而且是向秘鑰管理中心進行申請。秘鑰管理中心儲存了整個平台的核心金鑰,所有的金鑰都在這裡經過儲存金鑰加密進行儲存。配有管理頁面,可以對接入的系統資訊進行管理。管理中心採用多節點部署,秘鑰不落地,儲...

基於libevent的網路伺服器模型

本模型中採用了多執行緒技術,主線程和子執行緒之間通過管道進行通訊。伺服器有主線程和一組工作執行緒,其中主線程只負責監聽客戶端的鏈結請求,並將請求平均的分配給工作執行緒。工作執行緒負責處理與客戶端的鏈結以及相關的業務。每個子執行緒維護乙個連線佇列,每乙個連線有乙個反饋的佇列。工作執行緒在初始化的過程中...