- 命名
- 大纲
- 描述
- 命令摘要
- 标准命令
- 消息摘要命令
- 编码与加密命令
- 口令参数
- 参考
- 历史
命名
openssl - OpenSSL命令行工具
大纲
openssl 命令 [ 命令选项 ] [ 命令参数 ]
openssl [ 标准命令 | 消息摘要命令 | 加密命令 | 加密算法 | 消息摘要算法 | 公钥算法 ]
openssl no-XXX [ 任意选项 ]
描述
OpenSSL是一个密码学工具集,它实现了安全套接层(SSL v2/v3)与传输层安全(TLS v1)网络协议及其需要的相关密码学标准。
openssl程序是一个命令行工具,用于在命令行(shell)为使用OpenSSL crypto 库的多种密码功能。它可用于:
- 创建和管理私钥,公钥与参数
- 公钥加密操作
- X.509证书,CSRs和CRLs的创建
- 计算消息摘要
- 使用密钥做加解密
- SSL/TLS客户端与服务端的测试
- S/MIME信号或加密邮件的处理
- 时间戳请求,生成与验证
命令摘要
openssl程序提供了丰富多样的命令(在大纲中有列出),每个命令都有大量的选项与参数。
伪命令 list-standard-commands,list-message-digest-commands,list-cipher-commands分别逐行列出在现有的openssl实现中有效的标准命令,消息摘要命令或加密命令名称。
为命令 list-cipher-algorithms与list-message-digest-algorithms逐行列出所有密码和消息摘要名称。别名被列为:
from => to
伪命令list-public-key-algorithms列出所有支持的公钥加密算法。
为命令no-XXX用于测试给出的命令是否有效。如果命令名XXX不存在,返回0并输出no-XXX;否者返回1且输出XXX。这两种情况下都是输出内容到标准输出stdout,不输出到标准错误stderr。多余的命令行常被忽略。因为每个加密都有一个同名的命令行名称,这为在shell脚本中测试加密在openssl程序中时候有效提供了方便的方法。(no-XXX不能用来检测为命令如:quit,list-...-commands或no-XXX它自己。)
标准命令
asn1parse
解析一个ASN.1序列
ca
证书权威(CA)管理
ciphers
密码套件描述
cms
CMS(加密消息语法)工具
crl
证书废除列表(CRL)管理
crl2pkcs7
证书废除列表转换为PKCS#7
dgst
消息摘要计算
dh
Diffie-Hellman参数管理,已废弃,请使用dhparam
dhparam
生成与管理Diffie-Hellman参数。由genpkey与pkeyparam取代
dsa
DSA数据管理
dsaparam
DSA参数生成与管理。由genpkey与pkeyparam取代
ec
EC(椭圆曲线)密钥处理
ecparam
EC参数处理与生成
enc
使用密码编码
engine
引擎(loadble模块)信息与处理
errstr
错误转为错误字符串描述
gendh
生成Diffie-Hellman参数。由dhparam废弃
gendsa
利用参数生成DSA密钥。由genpkey与pkeyparam取代
genpkey
生成密钥或参数
genrsa
生成RSA私钥。由genpkey废弃
nseq
生成或检测一个网景证书序列
ocsp
线上证书状态协议工具
passwd
生成哈希密码
pkcs12
PKCS#12数据管理
pkcs7
PKCS#7数据管理
pkey
公钥与私钥管理
pkeyparam
公钥算法参数管理
pkeyutl
公钥算法加密操作工具
rand
生成伪随机字节
req
PKCS#10 X.509证书签署请求(CSR)管理
rsa
RSA密钥管理
rsautl
RSA工具用于签署,验证,加密与解密。由pkeyutl废弃
s_client
实现了一个通用的SSl/TLS客户端,可用于与远程SSL/TLS服务器建立一个透明的连接。它是用于测试的且仅实现了基本的接口功能,但内在的使用了OpenSSL ssl 库的几乎所有功能。
s_server
实现了一个基本的SSL/TLS服务器,可以用于接受远程SSL/TLS客户端的连接。它是用于测试的且仅实现了基本的接口功能,但内在的使用了OpenSSL ssl 库的几乎所有功能。它提供了一个自己的命令行导向协议用于测试SSL功能和一个简单的HTTP响应设施来模拟一个SSL/TLS服务器。
s_time
SSL连接定时器
sess_id
SSL会话数据管理
smime
S/MIME邮件处理
speed
算法速度测量
spkac
SPKAC打印和生成工具
ts
时间戳权威工具(客户端/服务端)
verify
X.509证书验证
version
OpenSSL版本信息
x509
X.509证书数据管理
消息摘要命令
md2
MD2摘要
md5
MD5摘要
mdc2
MDC2摘要
rmd160
RMD-160摘要
sha
SHA摘要
sha1
sha1摘要
sha224
SHA-224摘要
sha256
SHA-256摘要
sha384
SHA-384摘要
sha512
SHA-512摘要
编码与加密命令
base64
Base64编码
bf bf-cbc bf-cfb bf-ecb bf-ofb
Blowfish加密
cast cast-cbc
CAST加密
cast5-cbc cast5-cfb cast5-ecb cast5-ofb
CAST5加密
des des-cbc des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb des-ede-ofb des-ofb
DES加密
idea idea-cbc idea-cfb idea-ecb idea-ofb
IDEA加密
rc2 rc2-cbc rc2-cfb rc2-ecb rc2-ofb
RC2加密
rc4
RC4加密
rc5 rc5-cbc rc5-cfb rc5-ecb rc5-ofb
RC5加密
口令参数
一些命令接受密码参数,分别使用-passin和-passout来输入和输出密码。它们允许从多种来源获取密码。两个选项都有一个参数,下方给出了其格式。如果需要密码,但密码又是必需的,则等待用户输入一个密码:将会从关闭了回显的终端读取。
pass:password
实际的密码就是password,由于密码是可见的(在Unix下使用ps则能看到密码),所以这种方式应该用于安全不是很重要的地方。
env:var
从环境变量var获取密码。由于环境变量对于平台上的其他进程可见,所以要谨慎使用。
file:pathname
文件pathname的第一行为密码。如果在选项-passin和-passout都使用了同一个pathname文件,那么第一行为输入的密码下一行用于输出密码。pathname need not refer to a regular file: it could for example refer to a device or named pipe.
fd:number
从文件描述符number读取密码。例如这可用于通过管道发送数据。
stdin
从标准输入读取密码
参考
asn1parse(1), ca(1), config(5), crl(1), crl2pkcs7(1), dgst(1), dhparam(1), dsa(1),dsaparam(1), enc(1), gendsa(1), genpkey(1), genrsa(1), nseq(1), openssl(1), passwd(1),pkcs12(1), pkcs7(1), pkcs8(1), rand(1), req(1), rsa(1), rsautl(1), s_client(1), s_server(1),s_time(1), smime(1), spkac(1), verify(1), version(1), x509(1), crypto(3), ssl(3),x509v3_config(5)
历史
openssl(1)文档是在OpenSSL版本0.9.2时编写的。list-XXX-commands伪命令是在版本0.9.3时加入的;list-XXX-algorithms伪命令实在1.0.0时加入的;no-XXX伪命令是在0.9.5a是加入的。对于其他命令的信息,参见它们各自的帮助页。