OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

什么是OpenSSL

OpenSSL是为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书管理安装功能以及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

OpenSSL采用C语言作为开发语言,这使得OpenSSl具有非常优秀的跨平台性能。它支持Linux, Windows, Mac, VMS等多个平台,这使得OpenSSL具有非常广泛的适用性。如:Apache 使用它加密 HTTPS,OpenSSH 使用它加密 SSH。

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

如何在Windows系统下安装OpenSSL

1.下载地址:http://slproweb.com/products/Win32OpenSSL.html

2.OpenSSL支持 32 位和 64 位。这个需要根据自己系统的实际情况选择,这里我下载的是 Win64 OpenSSL v1.1.0g进行安装。

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

3.下载完成之后就可以进行安装。

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

4.安装完成后进行环境变量配置。例如OpenSSL安装在C:\OpenSSL-Win64目录下,则将C:\OpenSSL-Win64\bin;复制到path中。(Note:下图为Windows10系统下环境变量配置的配图。

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

5.打开cmd命令窗口,输入OpenSSL version。如果显示版本号,那么恭喜你安装成功,否则安装失败。

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

如何使用OpenSSL

学习一门新技术时,很多人首先会想它有没有为我们提供一些help。例如之前我们讲解的PowerShell中的Get-Help。那OpenSSL有没有为我们提供呢? OpenSS作为一个强大的安全套接字层密码库,答案肯定是有。OpenSSL为我们提供了OpenSSL help这个强大的命令,让我可以概览OpenSSL的所有命令。如OpenSSL help(下面的截图只显示了部分内容)

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

使用OpenSSL xxx -help可以查看具体一条命令的用法以及它的参数(Note: xxx为具体命令)。如OpenSSL md5 -help。(下面的截图只显示了部分内容)

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

OpenSSL为我们提供了如此多命令,下面是对它命令的几种归类:

1)Standard commands为我们列出了OpenSSL所有的命令,包括rsa密码,ca证书以及模拟TLS协议。

·使用OpenSSL获取服务器的TLS/SSL证书

a)以百度为例查看服务器的TLS/SSL证书。如:OpenSSL s_client –connect www.baidu.com:443(下图只显示了部分内容)。

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

b)复制“-----BEGIN CERTIFICATE-----”和“----BEGIN CERTIFICATE----”之间的内容到文本编辑器中保存为以.cer结尾的文件。

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

c)双击此文件就可以看到百度的服务器证书。

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

·利用OpenSSL制作一张自己的证书

a)创建一个目录用于存放ca文件以及将要生成的证书文件,本例中创建的目录为:C:\openSSL\selfsign

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

b)执行OpenSSL的命令:OpenSSL genrsa -out rea.key 2048生成证书的key文件,如下图所示。

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

c)使用OpenSSL的命令:OpenSSL req -new -key rsa.key -out rsa.csr生成证书请求文件。

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

d)使用OpenSSL的命令:OpenSSL x509 –req –days 365 –in rsa.csr –signkey rsa.key –out rsa_cate.cer生成证书文件。

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

e) 在C:\openSSL\selfsign目录下我们就可以看到自己制作的证书。

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

2)Message Digest commands用来计算数据摘要,大概的意思就是对数据进行计算,求得一个唯一的值,如MD5码。

·求文件的MD5码。其中test.txt是一个文本测试文件。如OpenSSL dgst -md5 test.txt

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

·求文件的-sha512散列值。如OpenSSL dgst -sha512 test.txt

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

3)Cipher commands为我们提供了多种不同算法进行加密。

·使用bf-cbc算法加密。如OpenSSL enc -bf-cbc -in test.txt -out test.bf-cbcencNote: 在过程中输入密码,经过两次确认,生成加密文件。记住密码,我们要用密码解密

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

·使用bf-cbc算法解密。如OpenSSL enc -bf-cbc -in test.txt -out test.bf-cbcenc

Note: 过程中输入加密时使用的密码,解密后生成新文件。

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

比较两个文件:

OpenSSL,一款强大的密码学和SSL证书管理工具,功能大到你想象!

总结

知易行难,大家看完了上面的文章后,建议大家安装文章提供的步骤,进行练习,我想肯定有意想不到的收获。

如果大家在学习过程中有任何的疑问,请关注我并给我私信留言,我会把其他的重要的学习资料和大家一起分享。


分享到:


相關文章: