美文网首页
为你的网络传输加把锁之OpenSSL(二)

为你的网络传输加把锁之OpenSSL(二)

作者: 张春天 | 来源:发表于2020-08-14 23:25 被阅读0次

上一篇文章注意介绍了OpenSSL的理论,让我们来看看数字正常的格式是什么如下图:

有了以上的基础认识,对于我们理解和使用OpenSSL来讲有着非常重要的作用,OpenSSL 是一个强大的安全套接字层密码库,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,但是,你不应该只将其作为一个库来使用,它还是一个多用途的、跨平台的密码工具包括了主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

要想更好的使用OpenSSL先来认识一下OpenSSL的命令

前面曾提到OpenSSL是一个多用途的、跨平台的密码工具,那个OpenSSL如何对一个普通文件进行加解密、生成密码、生成随机数、生成私钥那?

加密和解密:

openssl  enc  -e  -CIPHERNAME  -a  -salt  -in  /PATH/FROM/SOMEFILE  -out /PATH/TO/SOMECIPHERFILE

     openssl  enc  -d  -CIPHERNAME -a  -salt  -in  /PATH/FROM/SOMECIPHERFILE  -out /PATH/TO/SOMEFILE

enc是openssl的一个子命令,

-e表示加密

-d表示解密

-CIPHERNAME表示指明用那种算法进行加密

-salt表示随机添加一段杂质

-in表示指明对那个文件进行加密

-out表示指明加密后输出文件的路径即名称

单项加密:

openssl  dgst   -CIPHER /PATH/TO/SOMEFILE

dgst是openssl的一个单项加密子命令

- CIPHER表示指明加密算法

生成密码:

openssl passwd -1 -salt NUM

生成随机数:

openssl   rand -hex|-base64 NUM

-hex表示以十六进制编码格式输出

-base64表示文本编码格式输出

生成私钥:

openssl  genrsa -out /PATH/TO/PRIVATE_KEYFILE NUM_BITS

genrsa是openssl命令生成私钥的一个子命令

-out  /PATH/TO/PRIVATE_KEYFILE指明生成的私钥输出位置以及名称

NUM_BITS指明生成私钥的位数

从私钥中提取公钥:

openss l rsa -in /PATH/FROM/PRIVATE_KEY_FILE -pubout

rsa是openssl命令提取公钥的一个子命令

-in /PATH/FROM/PRIVATE_KEY_FILE指明从哪个私钥中提取

-pubout指明提取的公钥的名称

从以上可以看出openssl的强大功能,但是众所周知数字证书是由权威机构--CA证书授权(Certificate Authority)中心发行的,那么如何构建我们自己的私有CA那,openssl同样可以做到,首先来看构建私有CA的步骤:

1、生成私钥文件

2、生成自签证书

3、提供辅助文件

touch /etc/pki/CA/index.txt

echo 01 > /etc/pki/CA/serial

到此我们的私有CA已经建立完毕,但是建立私有CA的主要作用就是给各个节点发证书,这里我们在本机来模拟节点申请证书,节点申请证书需要如下步骤:

1、生成私钥

2、生成证书签署请求

3、把请求发送给我们建立的私有CA

由于我在本机请求,所以直接copy过去就可以

到此我们的节点申请证书的请求以及请求完毕,这时就需要私有CA为这个节点申请的证书做签发证书,CA签发证书同样也有三个步骤:

1、验证请求者的信息

2、签发证书

3、把签发好是证书发还给请求者

这时我们已经正常签署了该节点的证书请求,该证书已经可以正常使用了。

以上说了这么多CA的相关信息,那CA证书到底有什么作用那?

1、验证网站是否可信(针对HTTPS)有了证书之后,当你的浏览器在访问某个 HTTPS 网站时,会验证该站点上的 CA 证书(类似于验证介绍信的公章)。如果浏览器发现该证书没有问题(证书被某个根证书信任、证书上绑定的域名和该网站的域名一致、证书没有过期),那么页面就直接打开;否则的话,浏览器会给出一个警告,告诉你该网站的证书存在某某问题,是否继续访问该站点

大多数知名的网站,如果用了HTTPS 协议,其证书都是可信的(也就不会出现上述警告)。所以,今后你如果上某个知名网站,发现浏览器跳出上述警告,你就要小心啦!

2、验证某文件是否可信(是否被篡改)

证书除了可以用来验证某个网站,还可以用来验证某个文件是否被篡改。具体是通过证书来制作文件的数字签名。

相关文章

网友评论

      本文标题:为你的网络传输加把锁之OpenSSL(二)

      本文链接:https://www.haomeiwen.com/subject/wbhodktx.html