openssl系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html
1.1 ssl命令系列前言
openssl命令的格式是"openssl command command-options args",command部分有很多种命令,这些命令需要依赖于openssl命令才能执行,所以称为伪命令(pseudo-command),每个伪命令都有各自的功能,大部分command都可以直接man command查看命令的用法和功能。
1.2 openssl总指挥
以下是openssl支持的伪命令,常用命令或可能用的上的命令加粗加红显示了,这些命令的用户在后面的文章中会一一介绍。
[root@xuexi ~]# 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--cbc aes--ecb aes--cbc aes--ecb
aes--cbc aes--ecb base64 bf
bf-cbc bf-cfb bf-ecb bf-ofb
camellia--cbc camellia--ecb camellia--cbc camellia--ecb
camellia--cbc camellia--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--cbc rc2--cbc rc2-cbc
rc2-cfb rc2-ecb rc2-ofb rc4
rc4- 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"传递解密密码。