首页 > 代码库 > 翻译 - openssl(1) 文档

翻译 - openssl(1) 文档

原文:openssl documents

  • 命名
  • 大纲
  • 描述
  • 命令摘要
    • 标准命令
    • 消息摘要命令
    • 编码与加密命令
  • 口令参数
  • 参考
  • 历史

命名

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是加入的。对于其他命令的信息,参见它们各自的帮助页。

翻译 - openssl(1) 文档