万普插件库

jQuery插件大全与特效教程

每日一个Linux命令解析——openssl

openssl:openssl 是一个用于管理和操作 SSL/TLS 协议和加密功能的命令行工具。它提供了一组命令用于创建密钥、生成证书、加密/解密数据、测试连接等。

一、语法

openssl [command] [subcommand] [options] [arguments]
  • 主命令,调用 OpenSSL 工具。
  • [command]
    • 指定主功能模块,例如 genrsa(生成 RSA 密钥)、req(证书请求)、x509(证书管理)等。
  • [subcommand](部分命令需要)
    • 指定具体的操作,例如 -new(创建新的请求)、-verify(验证操作)。
  • [options]
    • 细化命令功能的选项,例如 -in(指定输入文件)、-out(指定输出文件)、-text(查看内容)。
  • [arguments]
    • 命令的参数,例如文件名、算法名称等。

    二、常用选项

    1. 通用选项

    选项

    描述

    -help

    显示帮助信息,列出当前命令支持的所有选项。

    -version

    显示 OpenSSL 的版本信息。

    -in

    指定输入文件,例如密钥、证书、CSR 等文件。

    -out

    指定输出文件,用于保存生成的密钥、证书或加密后的数据。

    -noout

    禁止输出原始文件内容(例如禁用 Base64 编码内容的输出)。

    -text

    以可读的文本格式显示内容(常用于查看证书或密钥信息)。


    1. 加密/解密相关选项

    选项

    描述

    -enc

    启用加密功能。

    -d

    启用解密模式。

    -e

    启用加密模式(默认模式)。

    -aes-256-cbc

    指定加密算法为 AES-256-CBC。

    -salt

    启用盐值以增加加密安全性(推荐使用)。

    -k

    指定加密或解密密码(用于简单场景)。

    -K

    以十六进制指定加密密钥。

    -iv

    指定初始化向量(IV)。


    1. 密钥相关选项

    选项

    描述

    -genrsa

    生成 RSA 私钥。

    -des3

    使用 DES3 加密私钥。

    -passout

    指定私钥加密密码输出方式(例如 pass:my_password)。

    -passin

    指定私钥输入密码。

    -pubout

    提取公钥并输出到文件。

    -modulus

    显示密钥或证书的 Modulus(可用于检查密钥与证书是否匹配)。

    -outform

    指定输出格式(PEM 或 DER)。

    -inform

    指定输入格式(PEM 或 DER)。


    1. 证书相关选项

    选项

    描述

    -x509

    创建自签名证书。

    -req

    用于生成或处理证书签名请求(CSR)。

    -days

    指定证书有效期天数(常用于自签名证书)。

    -verify

    验证证书。

    -signkey

    使用指定的私钥为证书签名。

    -CA

    指定用于签发证书的 CA 证书。

    -CAkey

    指定用于签发证书的 CA 私钥。

    -CAcreateserial

    自动创建 CA 序列号文件(serial)。


    1. 哈希和摘要相关选项

    选项

    描述

    -md5

    使用 MD5 哈希算法。

    -sha1

    使用 SHA-1 哈希算法。

    -sha256

    使用 SHA-256 哈希算法。

    -sha512

    使用 SHA-512 哈希算法。

    -hmac

    使用指定的密钥生成 HMAC 值。


    1. 网络相关选项

    选项

    描述

    -s_client

    启动 SSL/TLS 客户端进行连接测试。

    -connect

    指定连接的主机名和端口号。

    -showcerts

    显示服务器发送的所有证书链。

    -cert

    指定客户端证书用于验证(双向认证时)。

    -key

    指定客户端私钥。


    1. 文件格式转换相关选项

    选项

    描述

    -outform

    指定输出格式为 PEM 或 DER。

    -inform

    指定输入格式为 PEM 或 DER。

    -in

    指定输入文件(如 PEM 证书)。

    -out

    指定输出文件。


    1. 调试和测试选项

    选项

    描述

    -debug

    显示调试信息,帮助分析问题。

    -engine

    使用指定的加密引擎(如硬件加速)。

    三、示例

    1. 生成 RSA 私钥
    openssl genrsa -out private.key -aes256 2048
    1. 生成自签名证书
    openssl req -x509 -new -key private.key -out cert.crt -days 365
    1. 测试 HTTPS 连接
    openssl s_client -connect example.com:443 -showcerts
    1. 加密文件
    openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.bin -k mypassword
    1. 一条命令完成自签署证书
    openssl req -x509 -newkey rsa:2048 -keyout private.key -out www.test.top.crt -days 365 -nodes -subj "/C=CN/ST=Shanxi/L=Taiyuan/O=Tunna Tech/OU=IT Department/CN=www.test.top/emailAddress=admin@test.top"

    总结

    openssl 的语法遵循统一的模块化设计,不同的命令和选项组合实现不同功能。根据需求组合命令,可以完成证书、密钥、加密等操作。

    #Linux命令#

    控制面板
    您好,欢迎到访网站!
      查看权限
    网站分类
    最新留言