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-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"傳遞解密密碼。