Openssl创建私有CA
1.A和B通过ssl传输数据大概过程
私钥加密的数据只能自己对应的公钥才能解密,
CA 签证机关先给自己发一个证书,公共认可的机构,
A B之间通信 数据都是通过自己生成的私钥加密的后生成的数据
首先 A 将自己的 姓名 地址 公钥 发给CA ,发送的数据称为AA,
CA自己生成的有一对公钥和私钥。CA先提取AA数据的特征码, 然后用自己的私钥加密,生成一段 数据,加密的结果附加到AA数据的后面也就是签名,称为AAA。
B 拿到发证机构的证书,里面包含有发证机构的公钥,能够解密AAA中的数据证明证书是发证机构发的。得到AA,然后拿到A的公钥,验证数据的完整性。然后用A的公钥解密A的 数据。
2.ssl大概内容
PKI Public Key Infrastructure 公钥基础设施结构
核心是CA Certificate Authority 证书权威机构
CRL 证书吊销列表 Certificate Revocation List,使用证书之前需要检测证书有效性。
证书存储格式常见的X509格式
包含内容
公钥有效期限
证书的合法拥有人
证书该如何使用
CA的信息
CA签名的校验码(签名)
PKI:TLS/SSL 使用的X509格式
PKI:OpenGPG
五层协议 : 物理层 数据链路层 网络层 传输层 应用层
ssl Secure Socket Layer NETscape公司
是在传输层和应用层的一个库,通过调用ssl实现加密
V1 V2 V3 版本
TLS Transport Layer Security 国际化标准组织
V1相当于sslV3
https 443端口
客户端和服务端通信
客户端请求服务端
客户端和服务端协商使用加密协议,加密算法 SSLv1 SSLv2 TLSv1
服务端发送证书给客户端
客户端生成随机数,通过服务端公钥加密后,传输数据(对称密码)给服务端
服务端勇对称密码加密数据给客户端
3.常见的加密算法
对称加密
DES
3DES
AES
AES192 AES 256 AES512
单向加密
md4
md5
SHA1
SHA192 SHA256 SHA384
CRC-32
公钥加密
身份认证
数据加密
密钥交换
RSA算法 可以用来加密也可用来签名
DSA算法 只可以用来签名
Openssl ssl的实现,一种加密工具
组件
libcrypto 通用加密库各种加密算法
libssl tls/ssl的实现,实现了数据机密性,会话完整性的tsl/ssl库
openssl 多用途命令行工具,可以实现私有证书颁发机构
4.openssl命令
speed 测试本机对各种加密算法的速度
openssl speed rsa 可以接算法表示测试单个算法的速度
enc -des 指定加密算法,对称加密算法
-a 对文件内容进行base64处理
-e 加密 默认选项
-d 解密
-salt 加盐加密
-in 指定要加密的文件
-out 加密后输出文件
dgst -md5 计算文件特征码
genrsa 生成rsa密钥
gendsa 生成dsa密钥
加密 openssl enc -des3 -salt -a -in /etc/fstab -out fstab.des3
解密 openssl enc -des3 -d -salt -a in fstab.des3 -out fstab
md5sum sha1sum 计算文件的md5,sha1特征码
openssl passwd -1 -salt ffgs
-1指定md5加密
openssl rand -base64 100 生成100位base64加密的随机数
whatis passwd 获取帮助
5.openssl制作私有CA
生成一对密钥
生成自签证书
(umask 077; openssl genrsa -out test.key 1024 ) ()中的命令只在子shell中生效,生成
权限为600,长度为1024位的私钥
openssl rsa -in test.key -pubout 表示从私钥中提取公钥
openssl req -new -x509 -key test.key -out server.crt -days 365 //生成私有证书
req 生成证书,和申请证书的命令
-new 代表生成一个新的申请
-x509 生成自签证书
-key 指定密钥文件
-out 指定输出证书文件
-days 指定过期时间
opsenssl x509 -text -in server.crt //查看私有证书内容文本格式
/etc/pki/tls/openssl.cnf openssl配置文件
dir 表示CA工作目录 /etc/pki/CA
certs 客户端证书保存目录
crl 证书吊销列表目录
database 证书保存数据库
new_certs_dir 新生成的证书保存路径
certificate 自有的证书文件
serial 证书序列号文件
crlnumber 证书吊销列表的号码
crl 吊销证书文件
private_key CA的私钥文件
在/etc/pki/CA 目录下创建certs , newcerts,crl目录,和index,serial文件,
/ect/pki/CA/private/cakey.pem 存放自签私有证书,必须命名为cakey.pem
给serial文件一个初始值为01(自定义) ,自签证书cacrt.pem
6.网站请求CA签署请求
openssl req -new -key request.key -out request.csr //请求CA签署证书
将证书发送给CA
opensssl ca -in request.csr -out request.crt -days 3655 //CA签署请求证书
CA将证书发送给请求的主机