数据加密类型及创建和申请CA证书
数据加密类型及创建和申请CA证书
1.数据在互联网上传输必须保证以下3点特性:
私密性: 数据加密
完整性: 数据传输过程没有被人修改
身份验证: 确认对方的身份,防止中间人伪装***
2.私密性:数据加密应使用对称加密,特点速度快
代表算法有:DES,3DES,AES,AES192,AES256,AES512,Blowfish
3.完整性:通过单向加密算法,提取数据特征码,特点是雪崩效应,定长输出,不可逆等
代表算法有:MD5,SHA1,SHA192,SHA256,SHA384,CRC-32(检验)
4.身份验证:公/私钥加密:即为非对称加密码算法,产生密钥对,特点是速度慢
发送方用对方的公钥加密,接收方用自己的私钥解密,即保证数据的私密性
发送方用自己的私钥加密,接收方用对方的公钥解密,即保证数据的身份验证和私密性
代表算法有:RSA(加密/签名),DSA(签名)
5.数据传输过程有2种方法:
第一种:首先发送方与接收方通IKE协商生成对称的密钥,发送方或接收方按需各自生成一对非对称的公私钥,然后发送方对将要发送的数据,提取特征码,并用自己的私钥对特征码加密,即可保证数据的身份验证和私密性,再通过对称密钥对整个数据和特征码进行加密,即发送即可,接收方用协商成的对称密钥进行数据解密,用发送方的公钥对特征码进行解密校验完整性和身份验证
第二种:首先发送方随机生成一个随机数,发送方或接收方按需各自生成一对非对称的公私钥,然后发送方对将要发送的数据,提取特征码,并用自己的私钥对特征码加密,即可保证数据的身份验证和私密性,再通过刚生成的随机数对整个数据和特征码进行加密,并且通过对方的公钥将随机数加密,放在整个数据后面一起发送即可,接收方用自己私钥的进行解密,得到发送方的随机数,再进行解密数据,最后用发送方的公钥对特征码进行解密校验完整性和身份验证
6.CA:Certificate Authority,简称CA证书,即证书颁发机构
CA:证书格式有x509和pkcs12格式
x509主要包括:公钥及有效期限,证书合法拥有者,证书使用说明,CA自身的信息,CA的签名
PKI的实现方式有:TLS/SSL:也使用x509格式
OpenGPG:格式与x509相似
SSL:Secure Socket Layer,在应用层与传输层之间的半个层,叫做安全套接字层,也就是一种库
例如:http明文协议通过调用SSL库,变成https加密协议
由于SSL是一个公司开发,较不开放,而国际化标准组织就不舒服,应运产生更开放的加密机制TLS
TLS:Transport Layer Security,叫传输层安全
版本:TLSv1相当SSLv3版本
7.openssl工具:
7.1.openssl ? 查看opessl简单帮助 ;man enc 查看enc帮助
-e 加密,默认
-d 解密
enc 指定加密算法
-salt 加盐,产生随机数
-a: base64编码
对fstab文件加密:
openssl enc -des3 -salt -a -in fstab -out fstab.des3
对fstab文件解密:
openssl enc -des3 -d -salt -a -in fstab.des3 -out fstab
7.2.提取指纹信息及特征码:
md5sum fstab
sha1sum fstab
openssl dgst -md5 fstab
openssl dgst -sha1 fstab
7.3.对密码进行加密或hash,由于salt不一样,同样的密码造成加密后的结果不一样
-1代表md5加密,man sslpasswd查找帮助得知:
openssl passwd -1
openssl passwd -1
openssl passwd -1 -salt
7.4.生成指定位数的随机数,可当作密码使用
openssl rand -base64 10
openssl rand -base64 50
openssl rand -base64 100
8.openssl创建私有CA: 要想给其他机构颁发证书,首先自己必须有证书
8.1.生成一对密钥: 密钥文件权限最好是600,man genrsa查看帮助,
以下三种方法选其一生成私钥
openssl genrsa 1024 > server.key ; chmod 600 server.key
openssl genrsa -out server.key 1024; chmod 600 server.key
(umask 077; openssl genrsa -out server.key 1024) #子shell运行,不影响父shell
提取公钥:从私钥中提取公钥
openssl rsa -in server.key -pubout
8.2.生成自签名证书
openssl req -new -x509 -key server.key -out server.crt -days 365
查看证书内容:openssl x509 -text -in server.crt
8.3:创建一个完整的私有证书过程及步骤:
cd /etc/pki/CA/
(umask 077; openssl genrsa -out private/cakey.pem 1024) #生成私钥
openssl req -new -x509 -key private/cakey.pem -out cacert.pem #用私钥创建CA证书
mkdir certs newcerts crl
touch index.txt
touch serial
echo 01 > serial
注意:通过cat /etc/pki/tls/openssl.cnf查看创建私有CA证书所需环境
9.openssl申请证书:
例如为https服务申请一个证书,简单步骤如下:
cd /etc/httpd/ssl
(umask 077; openssl genrsa -out httpd.key 2048 ) #生成私钥
openssl req -new -key httpd.key -out httpd.csr #用私钥申请证书,注意没有-x509
openssl ca -in httpd.csr -out httpd.crt -days 365 #CA颁发机构对证书签名
转载于:https://blog.51cto.com/willow/1772810
数据加密类型及创建和申请CA证书相关推荐
- 申请CA证书的费用大概是多少
申请CA证书的费用大概是多少?在了解这个问题之前,我们先来了解一下什么是CA证书以及它有哪些作用.CA是数字证书签发机构的简称,主要负责签发证书.认证证书以及管理已经颁发的证书,SSL证书就是由CA机 ...
- 通过代码来申请CA证书
最近一个项目中有关于PKI体系的搭建的内容,由于以前没有做过这部分,所以一开始一头雾水.慢慢摸索有了一丁点成果,拿出来和大家分享.说的不对的地方望能指正. PKI体系目前成了一个企业中信息化安全方面的 ...
- 通过代码来申请CA证书 -- cnblog
最近一个项目中有关于PKI体系的搭建的内容,由于以前没有做过这部分,所以一开始一头雾水.慢慢摸索有了一丁点成果,拿出来和大家分享.说的不对的地方望能指正. PKI体系目前成了一个企业中信息化安全方面的 ...
- 创建Apache的CA证书
自建Apache的CA证书 (环境:Centos7) PS:建议实验前把防火墙和SELinux都关掉. - 安装apache环境依赖 [root@qmfz ~]# yum -y install mod ...
- 新申请CA证书的有效期问题
现在在很多服务器的部署中,为了安全,都建议我们在部署的时候采用加密的方式进行.这就需要我们使用证书服务. 在使用证书服务的时候,自带的证书有时无法满足我们的需求,如证书的有效期太短等. 管理员经常做的 ...
- 实现CA证书创建及客户端申请证书
author:JevonWei 版权声明:原创作品 CA证书的相关文件路径 openssl配置文件/etc/pki/tls/openssl.cnf /etc/pki/tls/openssl.cnf C ...
- ca证书 linux 导入_CA搭建与证书申请
一:创建私有CA openssl的配置文件:/etc/pki/tls/openssl.cnf 根据此配置文件创建CA dir:CA相关文件存放路径 /etc/pki/CA certs:证书存放目录 / ...
- HTTP HTTPS 创建CA证书
目录 http 1.安装apache环境依赖 2.基本设置 3.配置主文件 4.配置完重启HTTP生效 https的实现 1.安装专门的mod_ssl模块 2.申请CA证书 3.编辑.conf配置文件 ...
- 记一次CA证书的申请、服务器上的部署过程
1.简介 最近用docker在liberity服务器上部署了一个应用.由于安全方面的考虑,服务器管理员需要我们启用https连接.这就需要我们去给liberity配置ssl证书. 2.步骤 1.申请C ...
最新文章
- python process pool_python multiprocessing.Process,multiprocessing.Pool区别(不同之处)
- Atmosphere 1.0:支持Java/JavaScript的异步通信框架
- Javascript系列——对象元素的数组去重实现
- PHP 基础篇 - PHP 中 DES 加解密详解
- Unity性能优化的N种武器
- 用Cython加速Python到“起飞”
- python计算n阶乘中尾部零的个数_(Java)设计一个算法,计算出n阶乘中尾部零的个数...
- snap占用/dev/loop0-/dev/loop11占用100%
- wex5 java_[Java教程]WEX5中ajax跨域访问的几种方式
- 蓝牙核心规范(V5.2)7.8-深入详解之SMP(安全管理协议)|LE配对过程(1)
- linux 安装软件仓库,linux 软件仓库
- 退火算法(Annealing)简介与详解
- 2018人工智能发展盘点:国内各行业拥抱AI,总体呈现八大特点
- 22南工计算机学院新生培训最终章---ACM竞赛机制
- 个人认为最low的10款鞋子
- 工控机CF卡槽无法使用的解决方案
- 以STC的单片机为例A/D做按键扫描应用原理介绍
- 公司申请微信订阅号需要的材料及注意事项
- 关于Uncaught TypeError (Cannot read property ..undefined)的解决办法
- ElasticSearch入门
热门文章
- jdbc增删改查有哪些步骤_用Mybatis如何实现对数据库的增删改查步骤
- quot;luasql.mysqlquot;_解决mysqlquot;Access denied for user 'root'@'IP地址'quot;问题 - - ITeye博客...
- struts2下面如何同时使用servlet,就是如何实现struts与servlet共存
- Spring PropertyPlaceholderConfigurer Usage - 使用系统变量替换spring配置文件中的变量
- C# winform bin文件夹、obj文件夹、Properties文件夹下分别存放什么文件?
- shell里面比较大小
- gridview中如果文字太多指点要显示的文字
- step2 . day7 C语言阶段小的项目总结
- springMVC接收前端参数的方式
- 获取拍照图片,显示大图像