openssl命令详解

如题所述

第1个回答  2022-08-03

OpenSSL是一个安全套接字层密码库,其包括常用的密码算法、常用的密钥生成和证书封装管理功能及SSL协议,并提供了丰富的应用程序以供测试。
OpenSSL是一个开源的项目,其由三个部分组成:
1、openssl命令行工具;
2、libencrypt加密算法库;
3、libssl加密模块应用库;

这里主要学习下openssl命令工具的用法,openssl命令工具有两种运行模式: 交换模式 批处理模式 。直接输入openssl回车即可进入交互模式,而输入带命令选项的openssl命令则进行批处理模式。

利用OpenSSL作对称加密需要使用其子命令enc,其用法为:

其中常用的选项为:

使用案例

OpenSSL单向加密的子命令为dgst,其语法如下:

其常用的选项为:

单向加密除了 openssl dgst 工具还有: md5sum,sha1sum,sha224sum,sha256sum ,sha384sum,sha512sum

使用案例

OpenSSL还支持生成密码的hash离散值,其子命令为passwd,语法如下:

常用选项为:

使用案例

openssl命令也支持生成随机数,其子命令为rand,对应的语法为:

常用选项有:

使用案例

利用openssl命令的子命令genrsa生成私钥,然后再使用子命令rsa私钥中提取公钥。
genrsa的语法如下:

通常来说秘钥文件的权限一般只能由管理员访问,因此可以结合umask命令来设置生成的密钥文件的权限,如:

而随后可利用rsa子命令生成的私钥文件中提取公钥,rsa子命令的语法为:

常用选项为:
-in FILENAME:指明私钥文件的存放路径;
-out FILENAME:指明将公钥的保存路径;
-pubout:根据提供的私钥,从中提取出公钥;

如:

在使用OpenSSL命令创建证书前,可查看配置文件/etc/pki/tls/openss.conf文件,查看该文件定义了的证书存放位置及名称。
1)创建自签证书
首先为CA提供所需的目录及文件,并指明证书的开始编号:

随后生成私钥,注意私钥的文件名及其存放的位置,需与配置文件中相匹配:

最后创建自签证书:

其中命令 openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650 用到子命令为req,其为证书请求及生成的工具,用到的选项解释为:

2)颁发证书
通常来说在CA签署颁发证书需要进行以下步骤:

上述命令用到了openssl命令的子命令CA,用于在CA服务器上签署或吊销证书。

上述查看证书使用了openssl命令的子命令x509,其选项解释为:

3)吊销证书
吊销证书的步骤通常为:

-gencrl选项为根据/etc/pki/CA/index.txt文件中的信息生成crl文件。

相似回答