📌  相关文章
📜  openssl 命令 (1)

📅  最后修改于: 2023-12-03 15:18:07.883000             🧑  作者: Mango

OpenSSL 命令介绍

简介

OpenSSL 是一个开源的密码学工具包,提供了许多常见的密码学功能,包括对公开密钥基础设施 (PKI) 的支持。它可以用于 SSL/TLS 协议的实现,以及加密、解密、数字签名和证书管理等操作。

安装

要使用 OpenSSL 命令,首先需要安装 OpenSSL 工具包。在 Linux 系统上,可以使用包管理器进行安装:

# Debian/Ubuntu
sudo apt-get install openssl

# CentOS/Fedora
sudo yum install openssl
基本用法

OpenSSL 命令的基本语法如下:

openssl <command> [options] [arguments]

其中 <command> 表示要执行的具体命令,[options][arguments] 则表示命令的选项和参数。

下面是一些常用的 OpenSSL 命令及其用法:

生成密钥对

要生成 RSA 密钥对,可以使用以下命令:

openssl genrsa -out private.key 2048

这会生成一个 2048 位的 RSA 私钥到名为 private.key 的文件中。

生成证书签名请求 (CSR)

要生成证书签名请求 (CSR),可以使用以下命令:

openssl req -new -key private.key -out csr.csr

这会生成一个 CSR,并使用之前生成的私钥进行签名。

自签名证书

要自签名一个证书,可以使用以下命令:

openssl req -x509 -sha256 -days 365 -key private.key -in csr.csr -out certificate.crt

这会使用之前生成的私钥和 CSR,生成一个有效期为 365 天的自签名证书。

加密和解密文件

要加密一个文件,可以使用以下命令:

openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.txt

这会将 plaintext.txt 文件使用 AES-256-CBC 算法加密,并输出到 encrypted.txt 文件中。

要解密一个加密过的文件,可以使用以下命令:

openssl enc -aes-256-cbc -d -in encrypted.txt -out decrypted.txt

这会将 encrypted.txt 文件使用 AES-256-CBC 算法解密,并输出到 decrypted.txt 文件中。

数字签名和验证

要对文件进行数字签名,可以使用以下命令:

openssl dgst -sha256 -sign private.key -out signature.sha256 file.txt

这会对 file.txt 文件进行 SHA-256 数字签名,并将签名输出到 signature.sha256 文件中。

要验证一个数字签名,可以使用以下命令:

openssl dgst -sha256 -verify public.key -signature signature.sha256 file.txt

这会使用 public.key 公钥对 file.txt 文件进行 SHA-256 数字签名验证。

进一步学习

以上只是 OpenSSL 命令的一小部分功能介绍。要深入了解 OpenSSL 工具包的使用,可以参考 OpenSSL 的官方文档和教程,地址为:https://www.openssl.org/docs/