openssl:
libcrypto:通用加密库
libssl:实现了TSL/SSL等功能库
openssl:多用途命令行工具
对称加密:
#加密
openssl enc -des3 -a -salt -in /path/to/file.in -out /path/to/file.out
#解密
openssl -d -des3 -a -salt -in /path/to/file.out -out /path/to/file.in
单向加密:
特性:
- One-Way
Collision-free
算法:md5:128bits
- sha1:160bits
- sha512:512bits
工具:sha1sum,md5sum,chsum,openssl dgst
单向加密
openssl dgst -sha1 [-out file_name] /path/to/somefile
MAC:消息摘要码
应用:用于实心在网络通信中保证所传输数据的完整性,是单向加密的延伸应用
机制:
CBC-MAC
HMAC:使用md5和sha1算法:
用户认证
工具:passwd,openssl passwd
openssl passwd -1
公钥加密:公钥加密,私钥解密
密钥对儿:
公钥:pkey
私钥:skey
算法:RSA,EIGamal
绝大多数都使用RSA
工具:gpg,openssl rsautl
数字签名:私钥加密,公钥解密
算法:RSA,EIGamal,DSA
DSA:Digital Signature Algorithm
密钥交换:IKE
算法:DH,公钥加密
Diffie-Hellman
数字证书
证书格式:x509,pkcs
x509格式:
公钥和有效期限:
持有者的个人身份信息
证书的使用方式
CA的信息
CA的数字签名
谁给CA发证书呢?自签署证书,自己证明自己。
一个机构不仅能够颁发证书,还能够吊销证书,整个框架组合起来就是PKI(pki: public key Infrastucture)公钥基础设施。
自己制作证书:
- 生成一对儿密钥
- 把所需信息和公钥按固定格式制作成证书申请
用openssl实现私有CA:
查看其配置文件:/etc/pki/tls/openssl.cnf
生成密钥对儿:
(umask 077;openssl genrsa -out private/cakey.pem 2048)
例:客户机—CA服务主机证书验证
#1.服务端生成CA自签证书:
openssl req -new -key private/cakey.pem -out cacert.pem -days 3655
#2.创建CA信息文件
touch index.txt serial crlnumber
#3.证书编号
echo 01 > serial
客户端www.xiaoc.com用openssl实现证书申请:
mkdir /etc/httpd/ssl
cd /etc/httpd/ssl
#1.生成密钥对儿,(括号表示在当前shell的子shell中执行该指令)
(umask 077;openssl genrsa -out httpd.key 1024)
#2.生成证书签署请求
openssl req -new -key private/httpd.key -out httpd.csr
#3.将csr文件证书发给CA服务器签署
scp httpd.csr 172.16.36.207:/tmp/
#4.CA服务器签署后生成crt文件
openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 3655
#5.签署后文件发回客户端
scp httpd.crt 172.16.36.208:/etc/httpd/ssl/
#6.配置主机使用证书
#7.吊销证书
openssl ca -revoke /path/to/somefile.crt