首页 > 代码库 > openssl
openssl
https的实现过程
- client 从互联网下载CA的证书(公匙 ),用于验证server的身份
- server 通过加密算法生成一对密匙,将公匙发给CA认证机构,做数字前面
- CA通过自己的私匙加密server公匙并加上自己的数字签名后,将生成的数字证书发给server
- client 与 server 通过TCP 的三次握手建立连接
- client发出HTTP 的报文请求,并和server协商使用哪种算法加密
- server 响应 报文并将证书(公匙)发给客户端
- client通过CA的证书(公匙)解密,server发过的证书,得到server的公匙和数字签名,client 通过散列函数算出server公匙的数字签名与
得到的数字签名对比,来验证server身份
- client 生成随机对称密匙,并用服务器的公匙加密,然后传给服务器
- server用私匙解密对称密钥,然后用其作为server和client 的 通话密码 加解密通信
- server 处理请求,对访问相关资源做出相应报文
SSL 的 工具 openssl
1 安装openssl 默认已经安装
[root@centos ~]# rpm -q openssl openssl-1.0.1e-16.el6_5.7.x86_64
2 openssl 的软件组成
- libcrpto 通用加密库
- libssl TLS/SSL的实现,基于会话 实现身份认证,数据机密性,完整性
- openssl 多用途命令行工具
3 openssl 常用命令
enc 加解密
[root@centos ~]# openssl enc -des3 -in inittab -e -out inittab.des3 [root@centos ~]# openssl enc -des3 -in inittab.des3 -d -out inittab
dgst 提取特征码
[root@centos ~]# openssl dgst -md5 inittab MD5(inittab)= 753a386bcd9ab0ca581056348463891e [root@centos ~]# md5sum inittab 753a386bcd9ab0ca581056348463891e inittab
生成随机数 n*2
[root@centos ~]# openssl rand -hex 8 ca502503cebd5d9a
4 openssl 实现私有CA具体步骤
一 创建CA机构
修改配置文件
生成一对秘钥
生成自签证书
二 客户端
生成一对秘钥
生成证书颁发请求 .csr
将请求发给CA
三 CA 机构
签署此证书
传送给客户端
建立CA
cd /etc/pki/CA (umask 077;openssl genrsa -out private/cakey.pem 2048) openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650 touch index.txt echo "01" > serial
配置 httpd 使用证书
cd /etc/httpd mkdir ssl cd ssl (umask 077;openssl genrsa -out http.key 1024) 生成密匙 openssl req -new -key httpd.key -out httpd.csr 证书请求文件 ,机构和其他名字必须和CA颁发机构的相同 openssl ca -in httpd.csr -out httpd.crt -days CA 签名
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。