前言linux
證書的做用算法
加密通訊數據,驗證對象身份,保證數據完整性工具
什麼是自簽名證書加密
公認的證書每每都須要收費,若是客戶端與服務端都是由咱們本身來操控,那即可以使用自簽名證書(說白了就是隻是本身承認的證書)spa
ca簽名證書server
ca簽名證書,也就是咱們本身當是認證的機構去認證一個證書,那麼客戶端新人該ca證書也表明着信任該ca證書籤名的全部的自簽名證書。對象
openssl是什麼blog
OpenSSL是一套開源的密碼學工具包ssl
在SSL協議中,咱們使用了不少密碼學手段來保護數據,其中包括對稱密碼、公鑰密碼、數字簽名、證書、完整性校驗、僞隨機數生成等。因爲這些算法和操做都很是複雜,因而開源社區就開發了一套庫,這個庫裏面提供了不少現成的標準方法,其餘開發者只要用正確調用這些方法,就能夠實現SSL協議中的各類加密/解密操做了。開發
linux環境下使用openssl生成ca證書與自簽名證書
生成ca證書
1.生成ca證書的密鑰key
openssl genrsa -des3 -out ca.key 1024
2.生成ca的自簽名證書,是的,此處的ca證書也是一個自簽名證書
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
輸入ca.key的使用密碼後根據狀況輸入相應信息,在Commom Name選項中須要填寫你要使用的域名
若是不想在調用密鑰文件的時候輸入密碼,能夠使用如下操做去除
openssl rsa -in ca.key -out ca.key
使用ca證書籤名自簽名證書
1.生成自簽名證書密鑰
openssl genrsa -des3 -out server.key 1024
2.生成自簽名證書請求文件
openssl req -new -key server.key -out server.csr
輸入相應信息後獲得server.csr請求文件
3.使用ca證書對自簽名證書請求文件進行簽名
openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt