zl程序教程

您现在的位置是:首页 >  其他

当前栏目

openssl自签署CA

2023-04-18 14:24:40 时间

一:安全的目标

保密性: confidentiallty 信息不能被第三方解开

完整性:integrity 信息完整

可用性:avallabilty 接收方可解

二:攻击类型:

威胁保密性的攻击:窃听、通信量分析

威胁完整性的攻击:更改、伪装、重放、否认

威胁可用性的攻击:拒绝服务(Ddos)

技术:加密解密、服务(用于抵御攻击的服务,也就是为了上述安全目标特地涉及的安全服务)

加密解密:

1 传统加密法。 源文通过替代, 位移等算法 成密文。替代。置换加密算法。参与者(密钥)

2 现代加密方法:块加密方法。前后块建立联系。

​ 服务:

1 认证机制。

2 访问控制机制。

密钥算法和协议:

1:对称加密: 加密解密使用同一个密钥:DES(Data Encryption Standard) 块加密。3DES:Triple EDS…AES:(Advanced Encryption Standard:128bits 192bits 256bits 384bits).

2:公钥加密: 密钥成对出现。公钥->私钥。 secret key;

用途:

1:数字签名:加密数据的特征码。 验证发送者身份是否正确。

2:密钥交换 :用对方公钥加密一个对称密钥 并发送给对方。

3:算法:

RSA :可以签名和加解密。

DSA :数据签名算法。 DSS。数据签名标准。只能签名。

ELGamal :

3:单向加密:提取数据指纹。数据完整性验证。md5:message digst 5 ;ssa1:secure hash algorithm 1 ,160bits;

密钥交换:

公钥加密:

DH(Deffie-Hellman):算法。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aZNXFKtL-1678789760747)(docker - 副本.assets/image-20230314182654222.png)]

4:认证协议

Linux系统:

OpenSSL ssl的实现

libencrypt : 加密解密的库

libssl: 实现ssl通信机制的库。安全通信。

openssl 命令行工具。

GPG (pgp)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tZ3bU8UN-1678789760749)(docker - 副本.assets/image-20230314182714457.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BTkmAPQa-1678789760750)(docker - 副本.assets/image-20230314182728380.png)]

PKI: Public Key Infrastructure

公钥基础设施:

签证机构:CA

注册机构:RA

证书吊销列表:CRL

证书存取库:

X.509v3:定义证书结构及认证协议标准

版本号

序列号

签名算法ID

发行者名称 CA名称

有效期限

主体名称 个人名字 必须一致。

主体公钥

发行者的唯一标识 CA标识

主体的唯一标识 证书拥有这标识

扩展

发行者的签名 CA把数据进行单向加密做数字签名。

SSL会话

一:自签CA;

三种策略:match匹配、optional可选、supplied提供

match:要求申请填写的信息跟CA设置信息必须一致,此为默认策略,也就时我们创建私有CA时需要注意国家,省份,机构需要和CA的配置相同。

[ policy_match ]
countryName        = match              #必须同CA       国家
stateOrProvinceName    = match         #必须同CA        城市
organizationName    = match            #必须同CA        组织   
organizationalUnitName    = optional   #无所谓          部门 可不写
commonName        = supplied           #提供 后期用
emailAddress        = optional          #无所谓 
# 1 生成私钥
(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)
# 2 生成自签证书
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655
Country Name (2 letter code) [XX]:CN                               #国家名字 必填   match
State or Province Name (full name) []:HeNan                        #省份  必填      match
Locality Name (eg, city) [Default City]:ZhengZhou                   #城市  可以没有
Organization Name (eg, company) [Default Company Ltd]:MY            #公司组织  必填  match 
Organizational Unit Name (eg, section) []:                          #部门 可以没有
Common Name (eg, your name or your server's hostname) []:CAmy      #CA服务器的名字 
Email Address []:                  #可以不填 
==================
echo 01>serial


cd ssl
(umask 077; openssl genrsa -out httpd.key 2048)
openssl req -new -key httpd.key -out httpd.csr -days 3650
Country Name (2 letter code) [XX]:CN                                 #必须同CA  
State or Province Name (full name) []:HeNan                             #必须同CA        州或者省份
Locality Name (eg, city) [Default City]:ZhengZhou                       #可以没有        公司所在城市
Organization Name (eg, company) [Default Company Ltd]:MY                 #必须同CA        组织
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:www.my.com       #提供 后期用
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
scp httpd.csr ops@172.16.13.101:/tmp/
=======
subject= /C=CN/ST=HeNan/O=MY/CN=www.my.com
openssl ca -in httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 3650
index.txt           #签署的证书
rm -f httpd.csr
openssl x509 -in httpd.crt -noout -serial -subject
openssl ca -in httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 3650
index.txt           #签署的证书
rm -f httpd.csr
openssl x509 -in httpd.crt -noout -serial -subject