PKI架构的简介,如何使用OPENSSL完成加密与解密,如何自建CA完成证书的签署

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

        PKI(Public Key Infrastructure ) 即"公钥基础设施",是一种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系。

        认证中心CA 作为PKI 的核心部分,CA 实现了PKI 中一些很重要的功能,概括地说,认证中心(CA)的功能有:证书发放、证书更新、证书撤销和证书验证。CA 的核心功能就是发放和管理数字证书,具体描述如下: 
(1)接收验证最终用户数字证书的申请。 
(2)确定是否接受最终用户数字证书的申请-证书的审批。 
(3)向申请者颁发、拒绝颁发数字证书-证书的发放。 
(4)接收、处理最终用户的数字证书更新请求-证书的更新。 
(5)接收最终用户数字证书的查询、撤销。 
(6)产生和发布证书废止列表(CRL)。 
(7)数字证书的归档。 
(8)密钥归档。 
(9)历史数据归档。

wKioL1N9mQPjRjI4AAMOfsN60PE465.jpg

我们先来看看如何使用OPENSSL对数据进行加密与解密:

openssl enc -ciphername(算法名称)

    -in filename

        the input filename, standard input by default. 输入文件名,标准的默认输入。

    -out filename

        the output filename, standard output by default. 输出文件名,标准的默认输出。

    -e 

        encrypt the input data: this is the default. 默认加密输入的数据。

    -d

        decrypt the input data. 解密输入的数据。

现在我们对/tmp下的fstab文件进行加密:

# openssl idea-ofb -in fstab -e -out fstab.secret

这样就对文件完成加密了,目录下是不是多了一个fstab.secret这个就是加密后的文件。

wKioL1N9qOGxYqNGAAD1TMGA0ZM508.jpg

我们看看加密文件的内容:

# cat fstab.secret

全身乱码看不懂吧,这时我们把源文件fstab删除掉,这样就很好的起到了保密工作。

# rm -f fstab

wKioL1N9qXTyYYMgAAMgc2oHLTk306.jpg

现在我们用这个加密的文件,把我们源文件给还原回来。

# openssl idea-ofb -in fstab.secret -d -out fstab

文件回来了吧,而且内容也正常。

wKiom1N9q7rjABpDAAL3sDIkv1c350.jpg


其他扩展的openssl命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
openssl: 
     # openssl version
     
     # 加密文件
      openssl enc -des3 - in  /path/to/somefile  -e -out  /path/to/somefile .des3
     # 解密文件 
      openssl enc -des3 - in  /path/to/somefile .des3 -d -out  /path/to/somefile
 
     # 一致性校验
      openssl dgst -md5 -hex  /path/to/somefile
      md5sum 
         
         # 评估加密算法的加密速度 
      openssl speed 
 
         # 加密密码  -salt 参数是在加密前给密码加上其他字符一并加密
      man  sslpasswd
      openssl  passwd  -1 -salt 
 
     # 生成随机密码
      openssl rand -base64 num
      openssl rand -hex num


如何使用openssl生成一个私钥:

openssl genrsa -out filename [字符位数]

        generate an RSA private key  生成一个RSA 私钥。

我们现在来生成一个2048位的私钥:

# openssl genrsa -out mytckey 2048

# chmod 600 mytckey

私钥是不能随便让人看的,所以改下权限,除了自己,所有人都不能看。

wKioL1N9s4rCUfukAAD8svxASso680.jpg

提取公钥:

# openssl rsa -in mytckey  -pubout

wKiom1N9tnuhYwiRAAImn3P93eM107.jpg

制作一个证书的签署请求命令介绍:

openssl

    req

        PKCS#10 X.509 Certificate Signing Request (CSR) Management. 证书签署请求管理。

    -new

        this option generates a new certificate request. 这个选项是生成一个新证书的请求。

    -key

        This specifies the file to read the private key from. It also accepts PKCS#8 format private keys for PEM format files.  这是指定读取的私钥在哪,也支持PKCS#8格式的私钥,PEM格式的文件。

    -out

        This specifies the output filename to write to or standard output by default  指定输出文件名

开始制作:

# openssl req -new -key mytckey  -out myreq.csr

接下来要输入所在国家,省份,城市,部门等信息。

这就创建好了一个证书的签署请求。

wKioL1N_ENngQkdjAANDnGJsDCM137.jpg

CA才可以签署证书

所以我们现在来看下,如何自建CA。

openssl配置文件CA的部分配置:

wKiom1OBa5zAXAZuAAQVvPFxgEI878.jpg

# cd /etc/pki/CA/

1、为CA生成一个私钥:

# (umask 077; openssl genrsa -out private/cakey.pem 4096)

wKioL1N_FFqDPba0AAO8QspF-DU172.jpg

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

自签证书

# touch serial index.txt

# echo 01 > serial

创建签证数据库文件,和序列号文件,并且给serial一个初始序列。

CA自建好了,现在可以给别人签证了。

wKioL1OBdt_Bh4kbAAJWslW1iSY754.jpg

我们先来签一个刚刚我们刚刚做好的请求

# openssl ca -in myreq.csr  -out mycert.crt -days 3655

这就给别人签好了一张证书。

wKioL1OBltrCMxcgAAKOiVgkzLM076.jpg

 接下来,我们在脚本里实现自建CA和签署证书的操作:

以下是小菜写的脚本:

wKiom1OCGQ3wXYukAAPwcvuiDbY374.jpg

这一块内容完成,有问题欢迎与我交流QQ1183710107。

 

 



本文转自qw87112 51CTO博客,原文链接:http://blog.51cto.com/tchuairen/1415425

相关文章
|
3月前
|
安全 网络安全 数据安全/隐私保护
SSL/TLS证书**是一种用于加密网络通信的数字证书
SSL/TLS证书**是一种用于加密网络通信的数字证书
171 6
|
1天前
|
安全 算法 网络协议
解析:HTTPS通过SSL/TLS证书加密的原理与逻辑
HTTPS通过SSL/TLS证书加密,结合对称与非对称加密及数字证书验证实现安全通信。首先,服务器发送含公钥的数字证书,客户端验证其合法性后生成随机数并用公钥加密发送给服务器,双方据此生成相同的对称密钥。后续通信使用对称加密确保高效性和安全性。同时,数字证书验证服务器身份,防止中间人攻击;哈希算法和数字签名确保数据完整性,防止篡改。整个流程保障了身份认证、数据加密和完整性保护。
|
15天前
|
安全 搜索推荐 网络安全
免费SSL证书:一键加密,守护网站安全
在互联网时代,网站安全至关重要。SSL证书是保护网站数据传输安全的核心工具,提供数据加密、提升信任度、提高搜索引擎排名及避免“不安全”警告等多重优势。现在,您可以通过JoySSL官网免费获取SSL证书,只需注册并填写注策码(230907),即可一键加密,轻松守护网站安全,提升用户体验和品牌形象。立即行动,为您的网站穿上“安全防护衣”!
42 11
|
20天前
|
存储 SQL 缓存
MySQL原理简介—2.InnoDB架构原理和执行流程
本文介绍了MySQL中更新语句的执行流程及其背后的机制,主要包括: 1. **更新语句的执行流程**:从SQL解析到执行器调用InnoDB存储引擎接口。 2. **Buffer Pool缓冲池**:缓存磁盘数据,减少磁盘I/O。 3. **Undo日志**:记录更新前的数据,支持事务回滚。 4. **Redo日志**:确保事务持久性,防止宕机导致的数据丢失。 5. **Binlog日志**:记录逻辑操作,用于数据恢复和主从复制。 6. **事务提交机制**:包括redo日志和binlog日志的刷盘策略,确保数据一致性。 7. **后台IO线程**:将内存中的脏数据异步刷入磁盘。
|
4月前
|
Kubernetes 调度 算法框架/工具
NVIDIA Triton系列02-功能与架构简介
本文介绍了NVIDIA Triton推理服务器的功能与架构,强调其不仅适用于大型服务类应用,还能广泛应用于各类推理场景。Triton支持多种模型格式、查询类型和部署方式,具备高效的模型管理和优化能力,确保高性能和系统稳定性。文章详细解析了Triton的主从架构,包括模型仓库、客户端应用、通信协议和推理服务器的核心功能模块。
157 1
NVIDIA Triton系列02-功能与架构简介
|
4月前
|
存储 分布式计算 Hadoop
Hadoop-33 HBase 初识简介 项目简介 整体架构 HMaster HRegionServer Region
Hadoop-33 HBase 初识简介 项目简介 整体架构 HMaster HRegionServer Region
83 2
|
4月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
76 0
|
5月前
|
算法 安全 网络安全
概念区分:对称加密、非对称加密、公钥、私钥、签名、证书
概念区分:对称加密、非对称加密、公钥、私钥、签名、证书
248 0
|
7月前
|
数据安全/隐私保护
https【详解】与http的区别,对称加密,非对称加密,证书,解析流程图
https【详解】与http的区别,对称加密,非对称加密,证书,解析流程图
234 0
|
8月前
|
存储 消息中间件 数据库
分布式系统详解--架构简介(微服务)
分布式系统详解--架构简介(微服务)
115 0

热门文章

最新文章