CA --Certificate Authority 证书授权中心
Authorize 授权
Authorization 授权书
PKI Public Key Infrastucture 公共秘钥基础设施
openssl是一个开源程序的套件、这个套件有三个部分组成:一是libcryto
,这是一个具有通用功能的加密库,里面实现了众多的加密库;二是libssl
,这个是实现ssl机制的,它是用于实现TLS/SSL的功能;三是openssl,是个多功能命令行工具,它可以实现加密解密,甚至还可以当CA来用,可以让你创建证书、吊销证书
证书格式
x509,pkcs12
x509:
公钥及其有效期限
证书的合法拥有者
证书该如何使用
CA的信息
CA签名的校验码
PKI: TLS/SSL 使用x509
PKI: OenGPG
https 默认端口443
TLS : Transport Layer Security 在传输层加密,相当于SSL V3
SSL : Secure Socket Layer 安全套接层 只是一个库,由美国netscape公司研发提供
版本: SSL V1、V2、V3
https:数据由http协议 通过 SSL 封装后传输
http(tcp) 基于tcp
对称加密: 加密解密用同一个密码
DES : Data Encryption Standand 56bit
3DES : Triple DES 使用DES加密三次
AES : Advanced Encryption Standand
AES192,AES256,AES512
Blowfish :
实现对称加密的工具:OpenSSL、GPG
单向加密:定向输出密码位数
MD4
MD5
SHA1(160bit)
SHA192,SHA256,SHA384,SHA512
CRC-32 校验码机制(可能出现不同的输入,加密后生成一样的秘钥)
非对称加密: 公钥加密(加密和签名)
身份认证(数字签名)
数据加密
秘钥交换
RSA : 既可以加密也可以签名
DSA : 只能签名,公开使用的
ELGamal : 商业算法
OpenSSL : SSL的开源实现
libcrypto : 加密库
libssl : TLS/SSL的实现
基于会话的、实现了身份认证、数据机密性和会话完整性的TLS/SSL库
openssl : 多用途命令行工具
实现私有证书颁发机构
openssl speed [Encryption Algorithm] 计算加密某个加密算法所需要的时间,默认为全部
example:
加密:
openssl enc -des3 -salt -a(base64处理数据) -in inittab -out inittab.des3
解密:
openssl enc -des3 -salt -d(解密) -a -in inittab.des3 -out inittab
利用摘要算法加密
openssl dgst GIGESTCOMMANDS(md5/sha/sha1) FILE
openssl passwd -1 PASSWD
-1 :基于MD5加密
Openssl 实现私有CA:
1.生成一对秘钥
生成一个私钥,保存在FILE中
秘钥权限要是600,保证只有管理员可以读写
openssl genrsa [-out /PATH/TO/KEYFILE] [size]
example:
(umask 077;openssl genrsa -out private/cakey.pem 2048)
秘钥的名称和后缀需要和/etc/pki/tls/openssl.conf中的private_key命名一致
从私钥中提取公钥
openssl rsa -in /PATH/TO/KEYFILE -pubout
2.生成自签署证书
openssl req -new -x509 -key /PATH/TO/KEYFILE -out /PATH/TO/cacert.pem -days EXPIRES
证书的名称和后缀需要和/etc/pki/tls/openssl.conf中的certificate命名一致
3.证书请求
openssl req -new -key /PATH/TO/KEYFILE -out /PATH/TO/CSRFILE
3.证书签名
openssl ca -in /PATH/TO/CSRFILE -out /PATH/TO/CRTFILE -days EXPIRE
证书签名时,请求的证书需要和自签署证书的信息保持一致