openssl生成CA签署 及 加密解密基础
openssl 生成私有CA 及签署证书
openssl 配置文件: /etc/pki/tls/openssl.cnf
1. 在openssl CA 服务器端生成私钥
cd /etc/pki/CA/private/
(umask 077;openssl genrsa -out ./cakey.pem 4096)
( ) : 表示在子shell中运行进程
umask 077 : 表示文件仅自己可读写
genrsa : 使用rsa 加密方式生成密钥对
-out : 密钥输出文件位置
4096 : 表示生成4096位密钥对
2. 在 CA 服务器端生成 CA 自签证书
cd /etc/pki/CA/
openssl req -x509 -new -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650
-x509 : 仅在CA自签署证书时使用
-new : 表示生成新的证书
-key : 指向第一步生成的私钥文件 (会从私钥文件中提取私钥生成公钥)
-days : 证书有效时长
-out : 证书输出位置

3. 为CA 服务器端生成必要的目录和文件
mkdir /etc/pki/CA/{certs,crl,netcerts} (如果目录已存在无需创建)
touch /etc/pki/CA/{serial,index.txt}
echo 01 > /etc/pki/CA/serial
待签署客户端操作
1. 生成私钥
cd /etc/http/ssl/
(umask 077;openssl genrsa -out /etc/http/ssl/private.pem 4096)
2. 生成证书
openssl req -new -key /etc/http/ssl/private.pem -out /etc/http/ssl/http.pem -day 365
3. 将生成的证书文件拷贝到CA服务器
scp /etc/http/ssl/http.pem root@x.x.x.x:/tmp/
4. 在CA 服务器签署证书
openssl ca -in /tmp/http.pem -out /etc/pki/CA/http.pem -days 365
提示相关确认请求输入 yes
至此证书以签署完毕 ,将 /etc/pki/CA/http.pem 拷贝至待签署客户端 即可
查看证书操作: openssl x509 -in /etc/pki/CA/http.pem -noout -serial -subject
openssl 加密解密基础知识
安全的目的: 保密性
完整性
可用性
常见加密算法:
对称加密算法: DES,3DES,AES,...
单向加密算法: md5,sha1,sha256,sha384,sha512 ..... (用于实现数据完整性)
公钥加密 : 和与之配对的私钥成对,用于数字签名,验证主体身份
密钥交换 : DH
httpS 协议的交互过程:
假设 A client 向 B server 发送页面访问请求
1. A 向 B 发送证书请求
包含内容: A 当前http浏览器支持的加密算法与协议
支持的压缩算法
支持的协议类型 ssl or TLS 1.x
生成随机数 (用于与对端的随机数结合生成加密密钥,用于对端对称加密用)
2. B 向A 发送自己的证书
包含内容: 确定通信加密算法与协议
确定通信协议版本 ssl or TLS 1.x
自己的证书
随机数
3. A 验证B的证书
验证过程: 1. A使用CA的公钥解密B的证书
2. A使用单向加密算法对证书加密得到特征码,与证书特征码进行比对,确认证书完整性
3. 验证内容:
主体名称
证书有效期限
签发机构
证书是否被吊销
验证结束发送信息给B
发送内容:
一个随机数
编码变更通知 (表示随后的信息由双方协商的加密算法进行通信)
客户端握手结束
4. B 受到 A 发来的第三个随机数 pre-master-key后,计算本次会话的密钥;
向客户端发送如下信息:
编码变更通知
服务端握手结束
openssl生成CA签署 及 加密解密基础的更多相关文章
- centos7.6使用openssl生成CA签署的证书个人实验笔记
准备:客户端centos6.10 服务端Centos7.6 实验:客户端生成证书请求,服务端颁发证书,最后吊销其中一个证书 1.先在服务端上的/etc/pki/CA/目录生成rsa的私钥: 2.在服 ...
- 创建私有CA, 加密解密基础, PKI, SSL
发现了一篇图文并茂的超棒的 加密解密, CA, PKI, SSL 的基础文章, 链接如下:https://blog.csdn.net/lifetragedy/article/details/5223 ...
- openssl pem密钥文件rsa加密解密例子
准备工作 命令行加密解密,用与比对代码中的算法和命令行的算法是否一致 C:\openssl_test>openssl rsautl -encrypt -in data.txt -inkey pu ...
- OpenSSL生成CA证书及终端用户证书
环境 OpenSSL 1.0.2k FireFox 60.0 64位 Chrome 66.0.3359.181 (正式版本)(32位) Internet Explorer 11.2248.14393. ...
- openssl与cryptoAPI交互AES加密解密
继上次只有CryptoAPI的加密后,这次要实现openssl的了 动机:利用CryptoAPI制作windows的IE,火狐和chrome加密控件后,这次得加上与android的加密信息交互 先前有 ...
- 生成二维码 加密解密类 TABLE转换成实体、TABLE转换成实体集合(可转换成对象和值类型) COOKIE帮助类 数据类型转换 截取字符串 根据IP获取地点 生成随机字符 UNIX时间转换为DATETIME\DATETIME转换为UNIXTIME 是否包含中文 生成秘钥方式之一 计算某一年 某一周 的起始时间和结束时间
生成二维码 /// <summary>/// 生成二维码/// </summary>public static class QRcodeUtils{private static ...
- RSA非对称加密,使用OpenSSL生成证书,iOS加密,java解密
最近换了一份工作,工作了大概一个多月了吧.差不多得有两个月没有更新博客了吧.在新公司自己写了一个iOS的比较通用的可以架构一个中型应用的不算是框架的一个结构,并已经投入使用.哈哈 说说文章标题的相关的 ...
- PHP 生成公钥私钥,加密解密,签名验签
test_encry.php <?php //创建私钥,公钥 //create_key(); //要加密内容 $str = "test_str"; //加密 $encrypt ...
- nginx反向代理cas-server之2:生成证书,centOS下使用openssl生成CA证书(根证书、server证书、client证书)
前些天搭好了cas系统,这几天一致再搞nginx和cas的反向代理,一直不成功,但是走http还是测试通过的,最终确定是ssl认证证书这一块的问题,原本我在cas服务端里的tomcat已经配置了证书, ...
随机推荐
- 4 Action的3种编写方式,pojo,实现和继承(推荐)
Action的访问: 1 Action类是pojo(Plain Ordinary Java Object):简单Java对象,无接口,无继承.例如上篇文章中只创建了public String exec ...
- windows下 DEV-C++无法连接到pthread.h的解决办法
参考的这个博文,原博文有图片:http://lslin.iteye.com/blog/776325 (我只是为了方便写.copy一遍) dev-C++编写C/C++程序时,非常方便轻巧,但是今天学习多 ...
- java记录3--抽象
1.由来 利用抽象类是i为了更好的对类加以分类,例如各种植物有具体名字,也有“植物”这个抽象的词对所有具体植物进行归类. 2.抽象类通常用来作为一个类族的最顶层的父类(表示该类族所有事物的共性), 用 ...
- [Qt5] 使用Qt设计器绘制主窗口
实践代码: git clone https://github.com/dilexliu/learn_qt5.git Step1: Qt设计器绘制窗口 保存会得到一个文件: mainwindow.ui ...
- 「JOI2019 Final」解题报告
传送门 「JOI2019 Final」勇者比太郎 看懂题就很简单了,后缀和随便维护一下就好了,别用树状数组强加一个\(\log\)就行. 「JOI2019 Final」画展 显然可以先把所有的画框按大 ...
- MacBook OSX VMWare Fusion 11安装 Tools For Windows
需要加载对应客户机系统的安装文件,可以在/Applications/VMware\ Fusion.app/Contents/Library/isoimages文件夹下找到: 设置虚拟机的光驱: 在虚拟 ...
- 浏览器的HTML页面展示
当你输入一个url链接发生了什么? 下面的图是上篇文章的改造版本 电脑浏览器输入百度 打开台式电脑或者笔记本中的浏览器(IE,谷歌,360等),访问百度http://www.baidu.com,此时发 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表格:条纹表格
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- C# 中[DllImport("user32.dll")]和extern用法和示例----转载
原文:https://blog.csdn.net/michellehsiao/article/details/7629746 extern 修饰符用于声明在外部实现的方法.extern ...
- rally问题合集
rally 执行过程中涉及到keystone的用例,需要调用adminurl,在-/rally/lib/python2.7/site-packages/rally/osclients.py(主机文件的 ...