OpenSSL命令系列

1.1 ssl命令系列前言

openssl命令的格式是"openssl command command-options args",command部分有很多种命令,这些命令需要依赖于openssl命令才能执行,所以称为伪命令(pseudo-command),每个伪命令都有各自的功能,可以直接man command查看命令的用法和功能。想搞明白openssl命令,需要搞懂这些伪命令先。

1.2 openssl总指挥

以下是openssl命令的用法。常用命令加粗显示了,在文末附上了我对这些命令用法的整理链接。

[[email protected] tmp]# openssl -h
openssl:Error: ‘-h‘ is an invalid command.

/*支持的标准命令,即伪命令的一部分*/
Standard commands
asn1parse         ca                ciphers           cms
crl               crl2pkcs7         dgst              dh
dhparam           dsa               dsaparam          ec
ecparam           enc               engine            errstr
gendh             gendsa            genpkey           genrsa
nseq              ocsp              passwd            pkcs12
pkcs7             pkcs8             pkey              pkeyparam
pkeyutl           prime             rand              req
rsa               rsautl            s_client          s_server
s_time            sess_id           smime             speed
spkac             ts                verify            version
x509              

/*指定“dgst”命令时计算特征码支持的算法*/
Message Digest commands (see the ‘dgst‘ command for more details)
md2               md4               md5               rmd160
sha               sha1              

/*指定对称加密“enc”时支持的对称加密算法*/
Cipher commands (see the ‘enc‘ command for more details)
aes-128-cbc       aes-128-ecb       aes-192-cbc       aes-192-ecb
aes-256-cbc       aes-256-ecb       base64            bf
bf-cbc            bf-cfb            bf-ecb            bf-ofb
camellia-128-cbc  camellia-128-ecb  camellia-192-cbc  camellia-192-ecb
camellia-256-cbc  camellia-256-ecb  cast              cast-cbc
cast5-cbc         cast5-cfb         cast5-ecb         cast5-ofb
des               des-cbc           des-cfb           des-ecb
des-ede           des-ede-cbc       des-ede-cfb       des-ede-ofb
des-ede3          des-ede3-cbc      des-ede3-cfb      des-ede3-ofb
des-ofb           des3              desx              idea
idea-cbc          idea-cfb          idea-ecb          idea-ofb
rc2               rc2-40-cbc        rc2-64-cbc        rc2-cbc
rc2-cfb           rc2-ecb           rc2-ofb           rc4
rc4-40            seed              seed-cbc          seed-cfb
seed-ecb          seed-ofb          zlib

以下是man openssl的部分文档。

SYNOPSIS
       openssl command [ command_opts ] [ command_args ]

       openssl [ list-standard-commands | list-message-digest-commands | list-
       cipher-commands | list-cipher-algorithms | list-message-digest-
       algorithms | list-public-key-algorithms]

       openssl no-XXX [ arbitrary options ]

/* 这几个伪命令:list-standard-commands、list-message-digest-commands和list-cipher-commands分别输出standard、message digest和cipher的所有命令名称列表。
如:[[email protected] ~]# openssl list-standard-commands将列出所有支持的standard命令。 */

/* 伪命令list-cipher-algorithms和list-message-digest-algothms列出所有密码和摘要信息支持的算法名称,即"dgst"命令和"enc"命令支持的算法。每行一个条目,别名被列出为from ==> to的形式 */

/* 伪命令list-public-key-algorithms列出所有支持的公钥算法,即非对称加密算法 */

/* 伪命令no-XXX用于测试命令是否可用,如果命令可用,则输出命令名称XXX,不输出no部分,如果命令不可用,则输出no-XXX */

/*伪命令*/
STANDARD COMMANDS
       asn1parse Parse an ASN.1 sequence.
       ca        Certificate Authority (CA) Management.
/* CA管理 */
       ciphers   Cipher Suite Description Determination.
       cms       CMS (Cryptographic Message Syntax) utility
       crl       Certificate Revocation List (CRL) Management.
/* 证书吊销列表管理 */
       crl2pkcs7 CRL to PKCS#7 Conversion.
       dgst      Message Digest Calculation.
/* 单向加密计算摘要信息(特征码) */
       dh        Diffie-Hellman Parameter Management.  Obsoleted by dhparam.
       dhparam   Generation and Management of Diffie-Hellman Parameters.
                 Superseded by genpkey and pkeyparam
       dsa       DSA Data Management.
       dsaparam  DSA Parameter Generation and Management. Superseded by
                 genpkey and pkeyparam
       ec        EC (Elliptic curve) key processing
       ecparam   EC parameter manipulation and generation
       enc       Encoding with Ciphers.
/* 指定对称加密算法,对称加密更多信息请查man enc */
       engine    Engine (loadble module) information and manipulation.
       errstr    Error Number to Error String Conversion.
       gendh     Generation of Diffie-Hellman Parameters.  Obsoleted by
                 dhparam.
       gendsa    Generation of DSA Private Key from Parameters. Superseded by
                 genpkey and pkey
       genpkey   Generation of Private Key or Parameters.
/* 生成各种类型的私钥或参数 */
       genrsa    Generation of RSA Private Key. Superceded by genpkey.
/* 生成RSA私钥,被genpkey取代 */
       nseq      Create or examine a netscape certificate sequence
       ocsp      Online Certificate Status Protocol utility.
       passwd    Generation of hashed passwords.
/* 生成哈希加密后的密码 */
       pkcs12    PKCS#12 Data Management.
       pkcs7     PKCS#7 Data Management.
       pkey      Public and private key management.
/* 公钥和私钥管理工具 */
       pkeyparam Public key algorithm parameter management.
       pkeyutl   Public key algorithm cryptographic operation utility.
/* 公钥算法加密操作工具 */
       rand      Generate pseudo-random bytes.
/* 生成伪随机数 */
       req       PKCS#10 X.509 Certificate Signing Request (CSR) Management.
/* x509格式的证书签名请求程序 */
       rsa       RSA key management.
/* RSA密钥管理工具 */
       rsautl    RSA utility for signing, verification, encryption, and
                 decryption. Superseded by  pkeyutl
       s_client  This implements a generic SSL/TLS client which can establish
                 a transparent connection to a remote server speaking SSL/TLS.
                 It’s intended for testing purposes only and provides only
                 rudimentary interface functionality but internally uses
                 mostly all functionality of the OpenSSL ssl library.
       s_server  This implements a generic SSL/TLS server which accepts
                 connections from remote clients speaking SSL/TLS. It’s
                 intended for testing purposes only and provides only
                 rudimentary interface functionality but internally uses
                 mostly all functionality of the OpenSSL ssl library.  It
                 provides both an own command line oriented protocol for
                 testing SSL functions and a simple HTTP response facility to
                 emulate an SSL/TLS-aware webserver.
       s_time    SSL Connection Timer.

       sess_id   SSL Session Data Management.
       smime     S/MIME mail processing.
       speed     Algorithm Speed Measurement.
/* 算法速度测量工具 */
       spkac     SPKAC printing and generating utility
       ts        Time Stamping Authority tool (client/server)
       verify    X.509 Certificate Verification.
/* 验证x509证书 */
       version   OpenSSL Version Information.
       x509      X.509 Certificate Data Management.
/* x509格式的证书数据管理工具 */

   MESSAGE DIGEST COMMANDS
/* 以下是“dgst”命令单向加密时支持的算法*/
       md2       MD2 Digest
       md5       MD5 Digest
       mdc2      MDC2 Digest
       rmd160    RMD-160 Digest
       sha       SHA Digest
       sha1      SHA-1 Digest
       sha224    SHA-224 Digest
       sha256    SHA-256 Digest
       sha384    SHA-384 Digest
       sha512    SHA-512 Digest

   ENCODING AND CIPHER COMMANDS
/* 以下为"enc"命令对称加密时支持的算法 */
       base64    Base64 Encoding
       bf bf-cbc bf-cfb bf-ecb bf-ofb
                 Blowfish Cipher
       cast cast-cbc
                 CAST Cipher
       cast5-cbc cast5-cfb cast5-ecb cast5-ofb
                 CAST5 Cipher
       des des-cbc des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb des-ede-ofb
       des-ofb
                 DES Cipher
       des3 desx des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb
                 Triple-DES Cipher
       idea idea-cbc idea-cfb idea-ecb idea-ofb
                 IDEA Cipher
       rc2 rc2-cbc rc2-cfb rc2-ecb rc2-ofb
                 RC2 Cipher
       rc4       RC4 Cipher
       rc5 rc5-cbc rc5-cfb rc5-ecb rc5-ofb
                 RC5 Cipher

PASS PHRASE ARGUMENTS
/* 密码参数的格式 */

       pass:password
                 the actual password is password. Since the password is
                 visible to utilities (like ’ps’ under Unix) this form should
                 only be used where security is not important.
       env:var   obtain the password from the environment variable var. Since
                 the environment of other processes is visible on certain
                 platforms (e.g. ps under certain Unix OSes) this option
                 should be used with caution.
       file:pathname
                 the first line of pathname is the password. If the same
                 pathname argument is supplied to -passin and -passout
                 arguments then the first line will be used for the input
                 password and the next line for the output password. pathname
                 need not refer to a regular file: it could for example refer
                 to a device or named pipe.
       fd:number read the password from the file descriptor number. This can
                 be used to send the data via a pipe for example.
       stdin     read the password from standard input.

看上去非常复杂?其实不复杂,只是伪命令多点而已,而且很多伪命令经常用到的选项也就1到两个。

时间: 2024-11-05 22:20:43

OpenSSL命令系列的相关文章

OpenSSL命令---ciphers

OpenSSL命令---ciphers 摘自http://blog.csdn.net/as3luyuan123/article/details/13609819 用途: 指令是用来展示用于SSL加密算法的工具.它能够把所有openssl支持的加密算法按照一定规律排列(一般是加密强度).这样可以用来做测试工具,决定使用什么加密算法. 用法: [cpp] view plain copy print? openssl ciphers [-v] [-ssl2] [-ssl3] [-tls1] [ciph

openssl命令行工具简介 - 指令x509

原文链接: http://blog.csdn.net/allwtg/article/details/4982507 openssl命令行工具简介 - 指令x509 用法:           openssl x509 [-inform DER|PEM|NET] [-outform DER|PEM|NET]            [-keyform DER|PEM][-CAform DER|PEM] [-CAkeyform DER|PEM]            [-in filename][-o

OpenSSL命令行工具

数据的加密解密对于Linux系统来说,是至关重要的一个概念,必须懂的对数据进行保护,上次我们详细说了关于数据加密的种种方式,如公钥加密,单向加密,密钥交换等,以及认证机构CA的存在:而OpenSSL命令就是一个可以帮助我们实现公钥加密,创建私钥,并根据私钥创建出公钥:还可以进行单向加密,生成随机数,对用户的密码进行加密操作:还有一点,就是可以利用OpenSSL自己认证生成私人CA,用户可以根据OpenSSL命令生成CA请求证书,并将此证书发给有公信力的CA进行认证,产生一个CA证书用来证明用户:

openssl命令用法

openssl命令 配置文件:/etc/pki/tls/openssl.cnf 命令格式: openssl command [ command_opts ] [ command_args ] 众多子命令,常用有以下几项: 1.对称加密 openssl enc -[e/d] [-a] [-salt] -Cipher -in /PATH/TO/SOMEFILE -out /PATH/TO/SOMEFILE -e:加密 -d:解密 -a:将数据变为base64编码 -salt:添加随机数 -Ciphe

使用 openssl 命令行构建 CA \b及证书(一)

使用 openssl 命令行构建 CA \b及证书 这是一篇快速指南,使用 OpenSSL 来生成 CA (证书授权中心certificate authority).中级 CAintermediate CA和末端证书end certificate.包括 OCSP.CRL 和 CA颁发者Issuer信息.具体颁发和失效日期. 我们将设置我们自己的根 CAroot CA,然后使用根 CA 生成一个示例的中级 CA,并使用中级 CA 签发最终用户证书. 为根 CA 创建一个目录,并进入: mkdir

linux命令系列之iconv

转载至:http://blog.csdn.net/eroswang/article/details/3847304 iconv的用法: 用法: iconv [选项...] [文件...] Convert encoding of given files from one encoding to another. 输入/输出格式规范: -f, --from-code=NAME       原始文本编码 -t, --to-code=NAME         输出编码 信息: -l, --list   

Matlab命令系列之目录操作

Matlab命令系列之目录操作 filesep 用于返回当前平台的目录分隔符,Windows是反斜杠(),Linux是斜杠(/).有时此命令结合ispc命令使用,可以灵活的设置目录分割符. fullfile 用于将若干字符串连接成一个完整的路径,根据不同的操作系统自动填充目录分割符.例如: f=fullfile(‘D:’,’Matlab’,’example.txt’) f=D:\Matlab\example.txt (在Windows中,“D:\”表示D盘,“D:”表示目录) fileparts

MySql command line client 命令系列

—————————————————————————————————————————————————————————— 一.启动与退出 1.进入MySQL:启动MySQL Command Line Client(MySQL的DOS界面),直接输入安装时的密码即可.此时的提示符是:mysql> 2.退出MySQL:quit 或 exit 二.库操作 1.创建数据库 命令:create database 例如:建立一个名为xhkdb的数据库 mysql> create database xhkdb;

用OpenSSL命令行生成证书文件(客户端)

证书文件生成 也许很多人和本人一样深有体会,使用OpenSSL库写一个加密通讯过程,代码很容易就写出来了,可是整个工作却花了了好几天.除将程序编译成功外(没有可以使用的证书文件,编译成功了,它并不能跑起来,并不表示它能正常使用,所以--),还需生成必要的证书和私钥文件使双方能够成功验证对方. 找了n多的资料,很多是说的很模糊,看了n多的英文资料,还是没有办法(不知道是不是外国朋友都比较厉害,不用说明得太清?),无意间找到yawl([email protected])写的文章,难得的汉字(呵呵).