PKI:Public Key Infrastructure公鑰基礎設施
簽證機構:CA,被公認的提供公鑰簽證的機構
註冊機構:RA,CA的子機構
證書吊銷列表:CRL,當某個個人或者公司的服務器的私鑰丟失後,向CA申請公鑰證書吊銷後所有已吊銷的證書列表
證書存取庫:
x.509: 定義了證書結構和認證協議標準;
IP安全、TLS/SSL和S/MIME
SSL: Secure Socket Layer安全套接層協議
sslv1, sslv2, sslv3
各種版本
TLS: Transport Layer Security傳輸層安全性
tlsv1
http(80/tcp) --> ssl --> https(443/tcp)
Linux:gpg, (pgp); openssl
openssl:
openssl: 多用途命令行工具,各功能分別使用子命令實現
libcrypto: 公共加密庫
libssl: ssl協議的實現
openssl命令工具:
# openssl version來查看我們系統所安裝額openssl包的版本
對稱加密:
工具:gpg, openssl enc
算法:DES, 3DES, AES,
Blowfish, Twofish, RC6, idea, CAST5
# openssl enc -des3 -a -salt -in /tmp/jiami/qq -out /tmp/jiami/qq.cipher
加密文件內容
# openssl enc -d -des3 -a -salt -in
/tmp/jiami/qq.cipher -out /tmp/jiami/qq.jiemi
單向加密:
特性:
One-Way
Collison-free
算法:各種密文生成長度
md5: 128bits
sha1: 160bits
sha256
sha384
sha512
工具:md5sum, sha1sum, openssl dgst, chsum
# openssl dgst -md5 /tmp/jiami/qq
MAC: 消息摘要碼,單向加密的一種延伸類的應用
應用:用於實現在網絡通信中保證所傳輸的數據的完整性
機制:
CBC-MAC
HMAC:使用md5或sha1算法
用戶密碼:
# openssl passwd -1 -salt 12345678
生成隨機數:
openssl rand -hex 8
公鑰加密:
算法:RSA, EIGamal
工具:gpg, openssl rsautl
數字簽名:
算法:RSA, EIGamal, DSA
DSA: Digital Signature Algorithm
DSS: Digital Signature
Standard
密鑰交換:IKE
算法:公鑰加密、DH
Diffie-Hellman
生成密鑰:
# (umask 077; openssl genrsa -out /tmp/mima2 2048
)
提出公鑰:
# openssl rsa -in /tmp/mima2 -pubout
如何用openssl建立私有CA,以滿足在公司內部建立基於證書的通信。CA之所以存在,只是爲了讓其他任何想和你通信的客戶可以拿到你的真正公鑰,因爲CA本身的權威和公信已可以其他客戶端承認公鑰的真實信
首先我們看一下openssl包生成的文件
# rpm -ql openssl
一、建立CA服務器:首先自己給自己發個證書,以讓其他客戶端驗證你給別人頒發的證書是”官方“可被信任的
1、生成密鑰
在我們安裝openssl包後,在/etc/kpi/CA/private/裏面放的就是CA的私鑰,配置文件中默認在這裏
# (umask
077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
2、自簽證書
# openssl req -new -x509 -key
/etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365
req: 生成證書籤署請求
-new: 新請求
-key /私鑰存放地:
指定私鑰文件
-out /存放的地方:
-x509: 生成自簽署證書
-days n: 有效天數
3、初始化工作環境
# touch /etc/pki/CA/{index.txt,serial}
# echo
01 > /etc/pki/CA/serial
二、節點申請證書:
2、生成證書籤署請求
3、把簽署請求文件發送給CA服務
# scp
(二) CA簽署證書
1、驗正證書中的信息;
2、簽署證書
#
openssl ca -in /path/to/somefile.csr -out /path/to/somefile.crt -days N
3、發送給請求者;