加密-CA-PAM

加密和CA和PAM

加密算法
对称加密
非对称(公钥)加密
单向加密
##########################################################################################################
常见对称加密算法:
DES:Data Encryption Standard,56bits
3DES:
AES:Advanced (128, 192, 256bits)
Blowfish,Twofish
IDEA,RC6,CAST5

Alice ---Bob 
对称算法 key1=key2
data -- 加密(key1) -- data' ---解密(key2)---data
#########################################################################################################
非对称加密:密钥是成对出现
公钥:public key,公开给所有人,主要给别人加密使用
私钥:secret key,private key 自己留存,必须保证其私密性,用于自已加密签名
特点:用公钥加密数据,只能使用与之配对的私钥解密;反之亦然
功能:
数据加密:适合加密较小数据,比如: 加密对称密钥
数字签名:主要在于让接收方确认发送方身份
缺点:
密钥长,算法复杂
加密解密效率低下
常见算法:
RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变
的,可实现加密和数字签名
DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准)
ECC(Elliptic Curves Cryptogra
算法:公开
key:密钥,不公开

Alice ---Bob 
非对称算法 key1<>key2
data -- 加密(key1) -- data' ---解密(key2)---data

Alice
Public key 公开 Pa
Secret private key 不公开 Sa
Bob
Public  key Pb
Secret private key Sb  

用任何一个密钥加密,只能用对应另一把密钥解密
Alice ---> Bob 加密
data -- 加密(key1=Pb) -- data' ---解密(key2=Sb)---data

Alice ---> Bob  来源确认
      ---> jack 
data -- 加密(key1=Sa) -- data' ---解密(key2=Pa)---data

#########################################################################################################
哈希算法:也称为散列算法,将任意数据缩小成固定大小的“指纹”,称为digest,即摘要
特性:
任意长度输入,固定长度输出
若修改数据,指纹也会改变,且有雪崩效应,数据的一点微小改变,生成的指纹值变化非常大。
无法从指纹中重新生成数据,即不要逆,具有单向性
功能:数据完整性
常见算法
md5: 128bits、sha1: 160bits、sha224 、sha256、sha384、sha512

hash(data)-->digest摘要,相当于指纹
1 单向
2 data 相同,digest必相同
3 data不相同,digest必不相同
4 hash算法固定,则digest的长度固定
5 data发生轻微变化,而digest会发生巨大的变化
常用工具
md5sum | sha1sum [ --check ] file
[root@rocky ~]# md5sum /etc/passwd
22f86799911b65a84fb53d951d60a5f4  /etc/passwd
[root@rocky ~]# sha1sum /etc/passwd
f0c8789834424c0d5464997cf3626844ce5ad193  /etc/passwd

openssl、gpg
rpm -V
数字签名
方法1 成本高,加密慢
A-->B 	P公钥 S私钥 hash算法
PB(SA[hash(date)]+date)-->B
先把数据算出hash值,然后用A的私钥加密hash值(签名证书),再把证书和数据用B的公钥加密,完成后传给B
###############
方法2
A-->B P公钥 S私钥 hash算法
对称key{SA[hash(date)]+date}->PB(对称key)
先把数据算出hash值,然后用A的私钥加密hash值(签名证书),再把证书和数据用对称加密,然后再把对称加密用B的公钥加密,完成后传给B
CA
PKI:Public Key Infrastructure 公共密钥加密体系
签证机构:CA(Certificate Authority)
注册机构:RA
证书吊销列表:CRL
证书存取库:
X.509:定义了证书的结构以及认证协议标准
版本号
序列号
签名算法
颁发者
有效期限
主体名称
证书类型:
证书授权机构的证书
服务器证书
用户证书
获取证书两种方法:
自签名的证书: 自已签发自己的公钥
使用证书授权机构:
生成证书请求(csr)
将证书请求csr发送给CA
CA签名颁发证书

私有CA实现证书认证
vim /etc/pki/tls/openssl.cnf

[ CA_default ]

dir     = /etc/pki/CA       # Where everything is kept #存放目录
certs       = $dir/certs        # Where the issued certs are kept #存放证书目录
crl_dir     = $dir/crl      # Where the issued crl are kept   #证书吊销列表
database    = $dir/index.txt    # database index file.       #证书索引数据库文件
#unique_subject = no            # Set to 'no' to allow creation of
                    # several certs with same subject.
new_certs_dir   = $dir/newcerts     # default place for new certs.

certificate = $dir/cacert.pem   # The CA certificate			#CA自己证书
serial      = $dir/serial       # The current serial number		#证书编号
crlnumber   = $dir/crlnumber    # the current crl number		#证书吊销列表编号
                    # must be commented out to leave a V1 CRL
crl     = $dir/crl.pem      # The current CRL					#证书吊销列表文件
private_key = $dir/private/cakey.pem# The private key			#CA私钥

三种策略:match匹配、optional可选、supplied提供
match:要求申请填写的信息跟CA设置信息必须一致
optional:可有可无,跟CA设置信息可不一致
supplied:必须填写这项申请信息
[ policy_match ]
countryName     = match
stateOrProvinceName = match
organizationName    = match
organizationalUnitName  = optional
commonName      = supplied
emailAddress        = optional
#############################################
1.创建CA所需文件
mkdir -p /etc/pki/CA/{certs,crl,newcerts,private}			
touch /etc/pki/CA/index.txt
echo 01 >/etc/pki/CA/serial			#指定第一个颁发证书的序列号
2.生成CA私钥
cd /etc/pki/CA/
(chmod 600权限)openssl genrsa -out private/cakey.pem 2048
3.生成CA自签名证书
国家代码:https://country-code.cl/
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 3650 -out /etc/pki/CA/cacert.pem
选项说明:
-new:生成新证书签署请求
-x509:专用于CA生成自签证书
-key:生成请求时用到的私钥文件
-days n:证书的有效期限
-out /PATH/TO/SOMECERTFILE: 证书的保存路径

国家#Country Name (2 letter code) [XX]:CN
省#State or Province Name (full name) []:beijing
城市#Locality Name (eg, city) [Default City]:beijing
公司#Organization Name (eg, company) [Default Company Ltd]:magedu
部门#Organizational Unit Name (eg, section) []:m48
服务(域名)#Common Name (eg, your name or your server's hostname) []:ca.magedu.org
邮箱#Email Address []:admin@magedu.org
查看证书信息#openssl x509 -in /etc/pki/CA/cacert.pem -noout -text
################################################################################################
申请颁发证书
1、为需要使用证书的主机生成生成私钥
(chmod 600权限) openssl genrsa -out /tmp/www.key
2、为需要使用证书的主机生成证书申请文件
openssl req -new -key /tmp/www.key -out /tmp/www.csr
国家#Country Name (2 letter code) [XX]:CN
省#State or Province Name (full name) []:beijing
城市#Locality Name (eg, city) [Default City]:beijing
公司#Organization Name (eg, company) [Default Company Ltd]:magedu
部门#Organizational Unit Name (eg, section) []:m50
服务(域名)#Common Name (eg, your name or your server's hostname) []:www.magedu.org
3、在CA签署证书并将证书颁发给请求者
openssl ca -in /tmp/www.csr -out /etc/pki/CA/certs/www.crt -days 100		#100天
注意:默认要求 国家,省,公司名称三项必须和CA一致
4、查看证书中的信息:
openssl x509 -in /PATH/FROM/CERT_FILE -noout   -text|issuer|subject|serial|dates
openssl x509 -in certs/www.crt  -noout -text
################################################################################################
吊销证书
吊销证书#	openssl ca -revoke /etc/pki/CA/certs/www.crt 
生成吊销列表#	echo 01 > /etc/pki/CA/crlnumber
更新吊销列表文件#	openssl ca -gencrl -out /etc/pki/CA/crl.pem
查看证书信息#	openssl ca -status 01

CA私有证书实例
创建CA所需文件
mkdir -p /etc/pki/CA/{certs,crl,newcerts,private}			
touch /etc/pki/CA/index.txt
echo 01 >/etc/pki/CA/serial	
cd /etc/pki/CA/
生成CA私钥
openssl genrsa -out private/cakey.pem 2048
生成CA自签名证书
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 3650 -out /etc/pki/CA/cacert.pem
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:beijing
Locality Name (eg, city) [Default City]:chaoyang
Organization Name (eg, company) [Default Company Ltd]:wanghaha
Organizational Unit Name (eg, section) []:haha
Common Name (eg, your name or your server's hostname) []:CA

为需要使用证书的主机生成生成私钥
openssl genrsa -out /ss/wang.key
为需要使用证书的主机生成证书申请文件
openssl req -new -key /ss/wang.key -out /ss/wang.csr
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:beijing
Locality Name (eg, city) [Default City]:chaoyang
Organization Name (eg, company) [Default Company Ltd]:wanghaha
Organizational Unit Name (eg, section) []:hehe
Common Name (eg, your name or your server's hostname) []:www.wang.com
在CA签署证书并将证书颁发给请求者
openssl ca -in /ss/wang.csr -out /etc/pki/CA/certs/wang.crt -days 3650
查看证书中的信息
openssl x509 -in certs/wang.crt  -noout -text

吊销
openssl ca -revoke /etc/pki/CA/certs/wang.crt 
生成吊销列表
echo 01 > /etc/pki/CA/crlnumber
更新吊销列表文件
openssl ca -gencrl -out /etc/pki/CA/crl.pem
查看证书状态
openssl ca -status 01
CA私有证书命令版
#####CA端操作
dnf -y install  openssl-perl
vim /usr/bin/CA.pl
my $DAYS = "-days 365";  "-days 3650"; 私钥
my $CADAYS = "-days 1095"; 	"-days 7300" CA本身证书
CA.pl -newca	#搭建CA
[root@rocky ~]# CA.pl -newca
Enter PEM pass phrase:1234
Verifying - Enter PEM pass phrase:1234
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:beijing
Locality Name (eg, city) [Default City]:beijing
Organization Name (eg, company) [Default Company Ltd]:wanghaha
Organizational Unit Name (eg, section) []:wanghaha
Common Name (eg, your name or your server's hostname) []:CA
A challenge password []:1234
An optional company name []:1234

[root@rocky mnt]#mkdir server{1..7}
#####客户端操作
dnf -y install  openssl-perl
[root@centos8-node1 yum.repos.d]# CA.pl -newreq	
Enter PEM pass phrase:1111
Verifying - Enter PEM pass phrase:1111
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:beijing
Locality Name (eg, city) [Default City]:beijing
Organization Name (eg, company) [Default Company Ltd]:wanghaha
Organizational Unit Name (eg, section) []:wanghaha
Common Name (eg, your name or your server's hostname) []:server1
#####CA端操作
[root@rocky mnt]# cd server1/
[root@rocky server1]# scp root@192.168.1.111:/etc/yum.repos.d/newreq.pem  ./
[root@rocky server1]# vim /etc/pki/tls/openssl.cnf
default_days    = 365 改成 3650
[root@rocky server1]# CA.pl -sign	#签名
Enter pass phrase for /etc/pki/CA/private/cakey.pem:1234
Certificate is to be certified until Aug 12 15:37:51 2032 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
[root@rocky server1]# scp newcert.pem root@192.168.1.111:/etc/yum.repos.d/
#####客户端操作
[root@centos8-node1 yum.repos.d]# openssl rsa -in newkey.pem -out newkey-1.pem 生成一个不需要密码的key
[root@centos8-node1 yum.repos.d]# ll
-rw-r--r--  1 root root 4547 Aug 15 11:39 newcert.pem
-rw-------  1 root root 1679 Aug 15 11:41 newkey-1.pem
-rw-------  1 root root 1854 Aug 15 11:29 newkey.pem
-rw-r--r--  1 root root 1005 Aug 15 11:30 newreq.pem




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值