openssl命令的格式是"openssl command command-options args",command部分有很多种命令,这些命令需要依赖于openssl命令才能执行,所以称为伪命令(pseudo-command),每个伪命令都有各自的功能,大部分command都可以直接man command查看命令的用法和功能。
以下是openssl支持的伪命令,常用命令或可能用的上的命令加粗加红显示了
[root@localhost ~]# openssl --help openssl:Error: '--help' 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"命令时即单向加密支持的算法,实际上支持更多的算法,具体见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
看上去非常复杂?其实不复杂,只是伪命令多点而已,而且很多伪命令经常用到的选项也就1到两个。
以下是各伪命令的选项"-passin"和"-passout"可能使用到的密码传递格式,“-passin”指的是传递解密时的密码,"-passout"指的是传递加密输出文件时的密码。如果不给定密码格式,将提示从终端输入。
格式一:pass:password :password表示传递的明文密码
格式二:env:var :从环境变量var获取密码值
格式三:file:filename :filename文件中的第一行为要传递的密码。若filename同时传递给"-passin"和"-passout"选项,则filename的第一行为"-passin"的值,第二行为"-passout"的值
格式四:stdin :从标准输入中获取要传递的密码
例如,要加密某个密钥文件,使得每次使用该密钥文件都需要输入密码,则使用"-passout"指定加密密码,当使用被加密的密钥文件时需要解密,使用"-passin"传递解密密码。