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
生成一个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
二、节点申请证书:
(一) 节点生成请求
1、生成密钥对儿
2、生成证书签署请求
3、把签署请求文件发送给CA服务
# scp
(二) CA签署证书
1、验正证书中的信息;
2、签署证书
# openssl ca -in /path/to/somefile.csr -out /path/to/somefile.crt -days N
3、发送给请求者;