Linux中CA的创建,公钥私钥以及文件加密

简介:

数据加密方式有三种:

1、对称加密

2、公钥加密

3、单向加密

加密:由明文转换为密文

基于:加密算法

1、对称加密:

加密方和解密方使用同一个密钥

2、公钥加密

生成一对密钥

public key

Secret Key

公钥加密的时间比较慢

可实现密钥交换

3、单向加密:获取数据的特征码

1、定长输出

2、不可逆性

3、雪崩效应

数据传输过程中的 保密性、身份验证、完整性都得到保证的过程

发送方加密:

一段数据用单向加密的方式计算数据生成一段特征码,再用自己的私钥加密特征码放在数据的后面,再用对称加密的方式加密把生成一段密码放在数据的后面,最后再用接收方的公钥加密一次,发送出去。

接收方解密:

先用自己的私钥解密,得到对称加密方式的密码,再用发送方的公钥解密,如果能解密说明是发送方,并得到特征码,最后用相同的单向加密算法计算数据得到特征码并与之前发送的特征码作比较是否相同如果相同说明是数据完整

以上数据传输过程中的 保密性、身份验证、完整性都得了保证

CA:证书颁发机构

PKI :Public Key Infrastructure 公钥基础设施。其中最重要是CA

 

1、加密算法:

对称加密算法名称:

DES:

3DES:

AES:高级加密算法

Blowfish

2、公钥加密:

RSA,ELGamal 加密和签名

DSA :只能签名

3、单向加密

MD5 : 长度是128

SHA1:长度是160

CRC-32 是循环校验码

linux上常用的工具:

openssl enc

openssl dgst

gpgpgp

md5sum

sha1sum

其中openssl:是多种加密工具,也可以作为简单的本地CA使用

openssl version 版本

openssl speed :测试加密速率

openssl对文件加密 :

#openssl enc -des3 -salt -a -in inittab -out inittab.des3

解密:

#openssl enc -d -des3 -salt -a -in initab.des3 -out test

生成随机数的方式有两种:

1/dev/random

2/dev/urandom

随机数的来源

熵池

伪随机数来源于软件生成后保持在熵池的

来源于 keyboard and mouse events

block device interrupts -->保持到熵池

/dev/urandom:

来源于熵池和伪随机数生成器

用命令:#openssl rand 实现取得随机数

 

#openssl rand -base64 123

#openssl base64 编码 可以对字符串进行编码:

md5sum test md5test加密

shalsum md5 可以计算md5的校验码

shalsum test 可以计算一段文字的校验码

openssl dgst -sha1 test 也用于校验

 

在公钥加密中openssl 用于生成密钥

#openssl genrsa 2048(加密长度) > SECRT.FILE(位数)生成公钥,生成私钥,并保存

在文件中只显示私钥

而公钥就在私钥中

#openssl rsa -in FILE -pubout FILE1 提取公钥的命令

#(umask 077 openssl genrsa 22048 > SECRT.FILE)可以直接修改权限为只读

#openssl genrsa -des3 -out SECRT.FILE 1024 加密存放

加密私钥:

openssl rsa -in FILE ides3 -out FILES加密FILE文件并保存在FILES

解密:

openssl rsa -in FILES -out FILEO 解密后文件保存在FILEO

openssl 生成CA

CA的内容:

1、证书的持有者的相关信息

2CA的相关的信息

3、证书的使用方法

4、公钥

服务器与客户端之间传递公钥的过程及加密传输:

1、客户端向服务端发送请求

2、服务端向客户端发送证书

3、客户用服务的公钥解密签名验证身份,并用同样的单向加密验证校验码

如果相同,客户端生成一个密码则用服务器的公钥加密发给服务器,以后的数据传输就用这个密码加密

 

创建CA

CA放在/etc/pki/

 

编辑配置文件:

#vim /etc/pki/tls/openssl.cnf

dir = /../../CA改成dir =/etc/pli/CA

退出

cd /etc/pki/CA/

生成自己的私钥:

#(umask 077;openssl genrsa 2048 > private/cakey.pem)

给自己发证:(即申请又发证)

#openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3656

会出现一些提示分别输入:

CN

HeNan

ZZ

magedu

tech

www.magedu.com

ca@magedu.com

CA 的工作目录:

#cd /etc/pki/CA

创建目录:

#mkdir certs crl newcerts

创建文件:

#touch index.txt serial

输入01到文件serial

#echo 01 > serial

此时CA创建完成

向上面生成的CA申请证书

#mkdir /etc/httpd

#cd /etc/httpd

#mkdir ssl

#cd ssl/

(生成一对密钥)

#umsak 077; openssl genrsa 1024 > httpd.key

申请请求

#openssl req -new -key httpd.key -out httpd.csr

把生成的httpd.csr 发送到服务器上

#scp httpd.csr 172.16.35.2:/tmp

在服务器上

#openssl ca -in httpd.csr -out httd.crt

最后是服务器是否签发。

#openssl ca -revoke http.crt 吊销证书的命令。


本文转自 ZhouLS 51CTO博客,原文链接:http://blog.51cto.com/zhou123/799983


相关文章
|
2月前
|
存储 安全 数据库
python ras 私钥加密
【4月更文挑战第10天】
|
2月前
|
Linux 数据安全/隐私保护 Windows
aes加密在linux下会生成随机key的解决办法
aes加密在linux下会生成随机key的解决办法
39 2
|
2月前
|
Linux 网络安全 数据安全/隐私保护
Linux vsFTPd服务详解——文件加密传输配置
Linux vsFTPd服务详解——文件加密传输配置
173 2
|
2月前
|
JSON Kubernetes Linux
Linux环境签发CA证书和K8s需要的证书
Linux环境签发CA证书和K8s需要的证书
59 0
|
2月前
|
NoSQL 测试技术 Go
【Golang】国密SM2公钥私钥序列化到redis中并加密解密实战_sm2反编(1)
【Golang】国密SM2公钥私钥序列化到redis中并加密解密实战_sm2反编(1)
|
1月前
|
Ubuntu Linux Shell
github用存在的私钥在Linux上配置免密登录
在Linux上配置GitHub免密登录,使用已有的私钥。系统环境为Ubuntu 22.04.3 LTS。步骤包括:1) 将名为`github`的私钥文件上传至`~/.ssh/github`;2) 设置正确权限`chmod 600 ~/.ssh/github`和`chmod 700 ~/.ssh`;3) 启动SSH代理并添加私钥`ssh-agent -s`和`ssh-add ~/.ssh/github`。完成上述步骤后,可以无缝使用GitHub。
32 0
|
10天前
|
安全 数据安全/隐私保护
支付系统之微信支付08-身份认证,公钥和私钥的含义,私钥自己有的,作为唯一的控制系统,私钥加密,公钥解密是为了身份认证
支付系统之微信支付08-身份认证,公钥和私钥的含义,私钥自己有的,作为唯一的控制系统,私钥加密,公钥解密是为了身份认证
|
2月前
|
安全 Linux 网络安全
|
2月前
|
安全 数据安全/隐私保护
在非对称加密中,公钥和私钥的生成过程是如何进行的?
【5月更文挑战第13天】在非对称加密中,公钥和私钥的生成过程是如何进行的?
37 3
|
2月前
|
Linux 数据安全/隐私保护
自动化脚本之加密内容解密适用于Linux
自动化脚本之加密内容解密适用于Linux
28 1