标签:sub 输出 单向加密 版本号 Opens 服务 cer secure digital
加密解密技术基础,PKI以及创建私有CA加密算法和协议:
1.对称加密:加密和解密使用同一个密钥
DES:Data Encryption Standard;
3DES:Triple DES;
AES:Advanced Encryption Standard; (128bits, 192bits, 256bits, 384bits)
Blowfish
Twofish
IDEA
RC6
CAST5
特性:
(1)加密、解密使用同一个密钥;
(2)将原始数据分割成为固定大小的块,逐个进行加密;
缺陷:
(1)密钥过多;
(2)密钥分发困难;
2.公钥加密:密钥分为公钥与私钥
公钥:从私钥中提取产生;可公开给所有人;pubkey
私钥:通过工具创建,使用者自己留存,必须保证其私密性;secret key;
特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然;
用途:
数字签名:主要在于让接收方确认发送方的身份;
密钥交换:发送方用对方公钥加密一个对称密钥,并发送给对方;
数据加密
算法:RSA, DSA, ELGamal
DSS: Digital Signature Standard
DSA:Digital Signature Algorithm
3.单向加密:即提出数据指纹;只能加密,不能解密;
特性:定长输出、雪崩效应;
功能:完整性;
算法:
md5:Message Digest 5, 128bits
sha1:Secure Hash Algorithm 1, 160bits
sha224, sha256, sha384, sha512
4.密钥交换: IKE(Internet Key Exchange)
公钥加密
DH(Deffie-Hellman)
例如: A:p, g
B:p, g
A: x--> p^x%g ==> B
A: (p^y%g)^x=p^yx%g
B: y--> p^y%g ==> A
B: (p^x%g)^y=p^xy%g
5.一次加密通信过程:
A: (1):128bit的特征码单向加密成数字摘要
(2):将数字摘要和原文前面加上A的私钥
(3):将A的私钥和特征码用对称加密
(4)对称加密前面加上B的公钥
B:(1):B用自己的私钥解密获得对称空间
(2):用对称密钥解密加密内容
(3):用A的公钥单向加密生成特征码
(4):用此特征码和原来的比较是否一样
步骤:
(1)生成私钥:
(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)
():作用域子shell进程
(2) 生成自签证书;
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655
-new:生成新证书签署请求;
-x509:生成自签格式证书,专用于创建私有CA时;
-key:生成请求时用到的私有文件路径;
-out:生成的请求文件路径;如果自签操作将直接生成签署过的证书;
-days:证书的有效时长,单位是day;
(3)为CA提供所需的目录及文件;
mkdir -pv /etc/pki/CA/{certs,crl,newcerts}
touch /etc/pki/CA/{serial,index.txt}
echo 01 > /etc/pki/CA/serial
2.要用到证书进行安全通信的服务器,需要向CA请求签署证书
步骤:(以nginx为例)
(1) 用到证书的主机生成私钥;
mkdir /etc/nginx/ssl
cd /etc/nginx/ssl
(umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)
(2) 生成证书签署请求
openssl req -new -key /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.csr -days 365
(3) 将请求通过可靠方式发送给CA主机;
scp /etc/nginx/ssl/nginx.csr root@172.20.10.12:/tmp/
(4) 在CA主机上签署证书;
openssl ca -in /tmp/nginx.csr -out /etc/pki/CA/certs/nginx.crt -days 365
(5)查看证书中的信息:
openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -serial -subject
[root@localhost /]# openssl x509 -in /etc/pki/CA/certs/nginx.crt -noout -
serial -subject
serial=01
subject=/C=CN/ST=Shanghai/O=cern/OU=devops/CN=devops.com
3.吊销证书:
步骤:
(1) 客户端获取要吊销的证书的serial(在使用证书的主机执行):
openssl x509 -in /etc/pki/CA/certs/nginx.crt -noout -serial -subject
(2) CA主机吊销证书:
先根据客户提交的serial和subject信息,对比其与本机数据库index.txt中存储的是否一致;
吊销:
openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
其中的SERIAL要换成证书真正的序列号;
(3) 生成吊销证书的吊销编号(第一次吊销证书时执行)
echo 01 > /etc/pki/CA/crlnumber
(4) 更新证书吊销列表
openssl ca -gencrl -out thisca.crl
标签:sub 输出 单向加密 版本号 Opens 服务 cer secure digital
原文地址:https://blog.51cto.com/14418331/2426210