要有一个安全的网络连接,创建安全网络通信的密钥,并接收认证中心 CA(服务器上指定为可信 CA)的证书。使用 IKEYMAN 创建密钥数据库、公用-专用密钥对和证书请求。如果您作为您自己的 CA,则可使用 IKEYMAN 创建自签名的证书。如果您作为自己的专用 Web 网络的 CA,则可以选择使用服务器 CA 实用程序,为您的专用网络中的客户机和服务器生成并发出签署的证书。
使用 IKEYMAN 进行与公用-专用密钥创建和管理相关的配置任务。您不能使用 IKEYMAN 进行涉及更新服务器配置文件 httpd.conf 的配置选项。对于更新服务器配置文件的选项,您必须使用 IBM Administration Server。
对于 Linux for S/390 用户:使用 IKEYCMD 命令行接口以执行与 IKEYMAN 相似的功能。请参阅使用 IKEYCMD 命令行接口以获得有关 IKEYCMD 的更详细的信息。
本附录提供使用 IBM 密钥管理实用程序 (IKEYMAN) 可以执行的任务的详细信息。对于需要更新服务器配置文件的配置,该信息不说明如何配置安全性选项。
IKEYMAN GUI 是基于 Java 的,并需要一个 JDK 或 JRE 才能运行。IKEYMAN 支持的最低 JDK 级别是:
在 Windows 和 Solaris 上,作为 SSL 组件的一部分安装的 GSKit 库包括 JRE。在这些平台上无需设置其它环境。要在 AIX、HP 或 Linux 上运行,或在 Solaris 上使用另一个 JDK,请遵循下列准则设置您的系统环境:
EXPORT JAVA_HOME=JDK 主目录全路径名
EXPORT PATH = <JDK 主目录全路径名> /jre/sh:<JDK 主目录全路径名>/sh:$PATH
EXPORT PATH=$IKEYMAN_HOME/bin:$PATH
Linux for S/390 用户: 请参阅使用 IKEYCMD 命令行用户以获得关于 IKEYCMD 的更详细的信息。 要在 Linux for S/390 上运行 IKEYMAN,按如下所示设置环境变量以使用 IKEYCMD 命令行接口:
EXPORT PATH=/opt/IBMJava/bin:$PATH
EXPORT CLASSPATH=/usr/local/ibm/gsk/classes/cfwk.zip:/usr/local/ibm/ gsk/classes/gsk4cls.jar:$CLASSPATH
一旦完成,应该可以从任何目录运行 IKEYCMD。要运行 IKEYCMD 命令,使用下列语法:
java com.ibm.gsk.ikeyman.ikeycmd <command>注:根据您正在使用 JRE 还是 JDK,可以用 JRE 替换 Java。示例:
jre com.ibm.gsk.ikeyman.ikeycmd <command>
每个 IKEYCMD(除了创建数据库)要求指定密钥数据库和该密钥数据库的口令。这是一个必需的操作,因为,每条命令执行时数据库都是打开的。 请参阅使用 IKEYCMD 命令行接口,以获得关于 IKEYCMD 的更多的详细信息。
以下部分描述如何入门并使用 IKEYMAN 或 IKEYCMD 命令行接口。
要启动 IKEYMAN 图形用户界面:
注:如果正在启动 IKEYMAN 以新建密钥数据库,则该文件将存储在启动 IKEYMAN 的目录中。
要有一个安全的网络连接,创建安全网络通信的密钥,并接收认证中心 (CA)(服务器上指定为可信 CA)的证书。使用 IKEYMAN(或在 Linux for S/390 上使用 IKEYCMD)以创建密钥数据库文件、公用-专用密钥对和证书请求。在您接收 CA 签署的证书之后,使 用 IKEYMAN(在 Linux for S/390 上使用 IKEYCMD)接收证书并把它存储在您创建原始证书请求的密钥数据库中。
本节提供 IKEYMAN 和 IKEYCMD 任务的快速参考和公共任务描述。
下表总结了 IKEYMAN 用户界面和 IKEYCMD 命令行接口任务。
IKEYMAN 和 IKEYCMD 任务 | 要获得指示,转至: |
---|---|
新建密钥数据库和指定数据库口令 |
|
新建密钥对和证书请求 |
|
创建自签署证书 |
|
导出密钥至另一个数据库或 PKCS12 文件 |
|
从另一个数据库或 PKCS12 文件导入密钥 |
|
列出认证中心 (CA) 和证书请求 |
|
打开密钥数据库 |
|
接收 CA 签署的证书至密钥数据库 |
|
显示密钥数据库中的缺省密钥 |
|
存储 CA 的根证书 |
|
在存储文件中储存加密的数据库口令 |
|
密钥数据库是服务器用于存储一个或多个密钥对和证书的文件。您可以为所有密钥对和证书使用一个密钥数据库或创建多个数据库。
要新建密钥数据库:
Linux for S/390 用户:请参阅使用 IKEYCMD 命令行接口以获得关于 IKEYCMD 的更详细的信息。每个密钥数据库操作必需一个口令。即使该类型 sslight 的数据库需要特定的口令,该口令也可以是 NULL 字符串(指定为"")。 要使用 IKEYCMD 命令行接口新建密钥数据库,输入以下命令:
java com.ibm.gsk.ikeyman.ikeycmd -keydb -create -db <文件名>.kdb -pw <口令> -type cms -expire <天数> -stash
在创建密钥数据库期间指定 -stash 选项时,口令存储在带有文件名构建的文件中,如下所示:
<密钥数据库文件名>.sth例如,如果正在创建的数据库命名为 keydb.kdb,则存储文件名是 keydb.sth。
当您新建一个密钥数据库时,指定密钥数据库口令。该口令保护专用密钥。专用密钥是可用来签署文档,或对用公用密钥加密消息进行解密的唯一密钥。经常更改密钥数据库口令是一个好方法。
在指定口令时,请使用下列准则:
注: | 留意口令的到期日期。 如果口令到期,则在出错日志中写入一条消息。如果口令已到期,服务器能启动,但将没有安全的网络连接。 |
更改数据库口令:
对于 Linux for S/390 用户:请参阅使用 IKEYCMD 命令行接口以获得 IKEYCMD 的更多详细信息。要更改数据库口令,输入:
java com.ibm.gsk.ikeyman.ikeycmd -keydb -changepw -db <文件名> .kdb -pw <口令> -new_pw <新口令> -expire <天数> -stash
缺省密钥数据库名的初始配置设置是 key.kdb。如果您使用 key.kdb 作为缺省密钥数据库名,则不需要向服务器注册数据库。服务器将使用配置文件中 KeyFile 伪指令的初始设置。如果您不使用 key.kdb 作为缺省的密钥数据库名,或者如果您创建其它的密钥数据库,则必须注册这些数据库。
密钥对和证书请求存储在密钥数据库中。要创建公用-专用密钥对和证书请求,操作如下:
Linux for S/390 用户:请参阅使用 IKEYCMD 命令行接口,以获得有关 IKEYCMD 的更多详细信息。要创建公用-专用密钥对和证书请求,操作如下:
java com.ibm.gsk.ikeyman.ikeycmd -certreq -create -db <数据库名>.kdb -pw <口令> -size <1024 | 512> -dn<专有名称> -file <文件名> -label <标号>其中:
"CN=weblinux.raleigh.ibm.com,O=ibm,OU=IBM HTTP Server,L=RTP,ST=NC,C=US"
java com.ibm.gsk.ikeyman.ikeycmd -certreq -list -db <文件名> -pw <口令>您应该会看到列出的刚才创建的标号。
通常从一个已知的 CA 中获得证书需要 2 到 3 周的时间。在等待发出的证书时,可以使用 IKEYMAN 创建一个自签的服务器证书以启用客户机和服务器间的 SSL 会话。 如果您自己作为专用 Web 网络的 CA,则使用本过程。
要创建一个自签证书,操作如下:
Linux for S/390 用户:请参阅使用 IKEYCMD 命令行接口,以获得有关 IKEYCMD 的更多详细信息。 要创建一个自签证书,操作如下:
输入以下命令:
java com.ibm.gsk.ikeyman.ikeycmd -cert -create -db <数据库名>.kdb -pw <口令> -size <1024 | 512> -dn<专有名称> -label <标号> -default_cert <yes 或 no>其中:
"CN=weblinux.raleigh.ibm.com,O=ibm,OU=IBM HTTP Server,L=RTP,ST=NC,C=US"
Linux for S/390 用户:请参阅使用 IKEYCMD 命令行接口,以获得有关 IKEYCMD 的更多详细信息。
Linux for S/390 用户:请参阅使用 IKEYCMD 命令行接口,以获得有关 IKEYCMD 的更多详细信息。
要显示密钥数据库中可信认证中心 (CA) 的列表,操作如下:
Linux for S/390 用户:请参阅使用 IKEYCMD 命令行接口,以获得有关 IKEYCMD 的更多详细信息。要显示密钥数据库中可信 CA 的列表,操作如下:
java com.ibm.gsk.ikeyman.ikeycmd -cert -list CA -db <数据库名>.kdb -pw <口令> -type cms
要打开现有的密钥数据库,操作如下:
Linux for S/390 用户:请参阅使用 IKEYCMD 命令行接口,以获得有关 IKEYCMD 的更多详细信息。 没有明确打开的密钥数据库。对于每个命令,指定了数据库和口令选项,这些规范提供了在密钥数据库中进行操作所需的信息。
使用本过程接收来自认证中心 (CA) 的电子邮件证书,这里的 CA 是指定为服务器上的可信 CA。缺省情况下,下列 CA 证书存储在密钥数据库中并标记为可信 CA 证书:
认证中心可发送多个证书。除了发送服务器的证书外,CA 还可能发送附加的签署证书或中间 CA 证书。例如,当 Verisign 发送一个全局服务器标识证书时,包含一个中间 CA 证书。接收服务器证书之前,先接收所有其它中间 CA 证书。请遵循存储 CA 证书 中的指导,以接收中间 CA 证书。
注:如果发出 CA 签署的证书的 CA 不是密钥数据库中的可信 CA,则您必须先存储该 CA 证书并将该 CA 指定为可信 CA。然后您可以将您的 CA 签署的证书接收至数据库。您不能接收来自非可信 CA 签署的 CA 证书。要获得指导,请参阅 存储 CA 证书。
要接收 CA 签署的证书至密钥数据库,操作如下:
Linux for S/390 用户:请参阅使用 IKEYCMD 命令行接口,以获得有关 IKEYCMD 的更多详细信息。 要接收 CA 签署的证书至密钥数据库,操作如下:
java com.ibm.gsk.ikeyman.ikeycmd -cert -receive -file <文件名> -db <数据库名> .kdb -pw <口令> -format <ascii | binary> -default_cert <yes | no>
要显示缺省的密钥条目,操作如下:
Linux for S/390 用户:请参阅使用 IKEYCMD 命令行接口,以获得有关 IKEYCMD 的更多详细信息。 要显示缺省的密钥条目,操作如下:
java com.ibm.gsk.ikeyman.ikeycmd -cert -getdefault -db <数据库名>.kdb -pw <口令>
要存储来自非可信 CA 的证书,操作如下:
Linux for S/390 用户:请参阅使用 IKEYCMD 命令行接口,以获得有关 IKEYCMD 的更多详细信息。 要存储来自非可信 CA 的证书,操作如下:
java com.ibm.gsk.ikeyman.ikeycmd -cert -add -db <文件名>.kdb -pw <口令> -label <标号> -format <ascii | binary> -trust <enable |disable> -file <文件>其中:
对于安全网络连接,必须在存储文件中存储加密的数据库口令。
要在创建数据库时存储口令:
Linux for S/390 用户:请参阅使用 IKEYCMD 命令行接口,以获得有关 IKEYCMD 的更多详细信息。 要在创建数据库时存储口令:
java com.ibm.gsk.ikeyman.ikeycmd -keydb -create -db <数据库路径>/<数据库名>.kdb -pw <口令> -type cms -expire <天数> -stash
要在创建数据库后存储口令,操作如下:
Linux for S/390 用户:请参阅使用 IKEYCMD 命令行接口,以获得有关 IKEYCMD 的更多详细信息。 要在创建数据库后存储口令,操作如下:
java com.ibm.gsk.ikeyman.ikeycmd -keydb -stashpw -db <数据库名>.kdb -pw <口令>
在 Linux for S/390 上,IKEYCMD(IKEYMAN 的 Java 命令行接口)会提供必需的选项,以创建和管理密钥、证书和证书请求。如果您作为您自己的 CA,则可使用 IKEYCMD 以创建自签的证书。如果您作为自己的专用 Web 网络的 CA,则可以选择使用服务器 CA 实用程序,为您的专用网络中的客户机和服务器生成并发出签署的证书。
使用 IKEYCMD 以进行与公用-专用密钥创建和管理相关的配置任务。您不能使用 IKEYCMD 进行涉及更新服务器配置文件 httpd.conf 的配置选项。对于更新服务器配置文件的选项,您必须使用 IBM Administration Server。
IKEYCMD 使用 Java 和本机命令行调用,启用 IKEYMAN 任务脚本。
Java CLI 的语法为:
java [-Dikeycmd.properties=<特性文件>] com.ibm.gsk.ikeyman.ikeycmd <对象> <操作> [选项]
其中:
-Dikeycmd.properties |
|
对象是下列其中一项:
-keydb |
|
-cert |
|
-certreq |
|
-help |
|
-version |
|
操作是指对对象执行的特定操作,选项是指为对象和操作对指定的必需选项和可选选项。
注:对象和操作关键字是可定位的,必须以所选顺序指定。但是,选项不可定位,并可以按任何顺序指定,只要它们作为一个选项和操作数对指定。
下表描述了可在指定对象上执行的操作。
对象 | 操作 | 描述 |
---|---|---|
-keydb | -changepw | 更改密钥数据库的口令
|
-convert | 将密钥数据库从一种格式转换成另一种格式
| |
-create | 创建密钥数据库
| |
-delete | 删除密钥数据库
| |
-stashpw | 将密钥数据库口令储存到一个文件
| |
-cert | -add | 把 CA 证书从文件添加到密钥数据库
|
-create | 创建自签署证书
| |
-delete | 删除 CA 证书
| |
details | 列出特定证书的详细信息
| |
-export | 将个人证书及其关联的专用密钥从密钥数据库导入到 PKCS#12 文件中或另一个密钥数据库中
| |
-extract | 抽取密钥数据库中的证书
| |
-getdefault | 获取缺省的个人证书
| |
-import | 从密钥数据库或 PKCS#12 文件导入证书
| |
-list | 列出所有证书
| |
-modify | 修改证书(注:当前只可修改“证书信任”字段)
| |
-receive | 把 CA 证书从文件接收到密钥数据库
| |
-setdefault | 设置缺省的个人证书
| |
-sign | 用存储在密钥数据库中的证书签署存储在文件中的证书,并把结果签署证书存储到文件
| |
-certreq | -create | 创建证书请求
|
-delete | 删除证书请求数据库中的证书请求
| |
-details | 列出特定证书请求的详细信息
| |
extract | 从证书请求数据库抽取证书请求到文件
| |
-list | 列出证书请求数据库中的所有证书请求
| |
-recreate | 重新创建证书请求
| |
-help | 显示 IKEYCMD 命令的帮助信息
| |
-version | 显示 IKEYCMD 版本信息
|
下表显示了每个可显示在命令行上的选项。这些选项是作为一个完整的组列出的。但是,它们的使用取决于命令行上指定的对象和操作。
选项 | 描述 |
---|---|
-db | 密钥数据库的全限定路径名。
|
-default_cert | 将证书设置为作为客户机证书的缺省证书使用(yes 或 no)。缺省值为 no。
|
-dn | X.500 专有名称。下列格式的带引号字符串输入(仅 CN、O 和 C 是必需的):
"CN=Jane Doe,O=IBM,OU=Java Development,L=Endicott, ST=NY,ZIP=13760,C=country" |
-encryption | 使用在证书导出命令中的加密程度(strong 或 weak)。
缺省值为 strong。
|
-expire | 证书或数据库口令的到期时间(以天为单位)。缺省值:证书为 365 天,数据库口令为 60 天。
|
-file | 证书或证书请求的文件名(取决于指定的对象)。
|
-format | 证书的格式(Base64_encoded ASCII 为 ascii,或者 Binary DER 数据为 binary)。缺省值为 ascii。
|
-label | 附加到证书或证书请求的标号。
|
-new_format | 密钥数据库的新格式。
|
-new_pw | 新的数据库口令。
|
-old_format | 密钥数据库的旧格式。
|
-pw | 密钥数据库或 PKCS#12 文件的口令。
请参阅新建密钥数据库。
|
-size | 密钥大小(512 或 1024)。缺省值为 1024。
|
-stash | 将密钥数据库口令储存到文件的指示符。一旦指定,口令将被储存到文件中。
|
-target | 目标文件或数据库。
|
-target_pw | 密钥数据库的口令(如果 -target 指定密钥数据库)。请参阅新建密钥数据库。
|
-target_type | 由 -target 操作数指定的数据库类型(请参阅 -type)。
|
-trust | CA 证书的信任状态(enable 或 disable)。缺省值为 enable。
|
-type | 数据库的类型。允许值有 cms(表明 CMS 密钥数据库)、webdb(表明密钥环)、sslight(表明 SSLight .class)或 pkcs12(表明 PKCS#12 文件)。
|
-x509version | 要创建的 X.509 证书的版本(1,2 或 3)。
缺省值为 3。
|
以下是每个命令行调用的列表,附带用斜体指定的可选参数。
注:为方便起见,每个命令调用省略了实际的 Java 调用 java com.ibm.gsk.ikeyman,iKeycmd。
-keydb -changepw -db <文件名> -pw <口令> -new_pw <新口令> -stash -expire <天数> -keydb -convert -db <文件名> -pw <口令> -old_format <cms | webdb> -new_format <cms> -keydb -create -db <文件名> -pw <口令> -type <cms | sslight> -expire <天数> -stash -keydb -delete -db <文件名> -pw <口令> -keydb -stashpw -db <文件名> -pw <口令>
-cert -add -db <文件名> -pw <口令> -label <标号> -file <文件名> -format <ascii | binary> -trust <enable | disable> -cert -create -db <文件名> -pw <口令> -label <标号> -dn <专有名称> -size <1024 | 512> -x509version <3 | 1 | 2> -default_cert <no | yes> -cert -delete -db <文件名> -pw <口令> -label <标号> -cert -details -db <文件名> -pw <口令> -label <标号> -cert -export -db <文件名> -pw <口令> -label <标号> -type <cms | sslight> -target <文件名> -target_pw <口令> -target_type <cms | sslight | pkcs12> -encryption <strong | weak> -cert -extract -db <文件名> -pw <口令> -label <标号> -target <文件名> -format <ascii | binary> -cert -getdefault -db <文件名> -pw <口令> -cert -import -db <文件名> -pw <口令> -label <标号> -type <cms | sslight> -target <文件名> -target_pw <口令> -target_type <cms | sslight> -cert -import -file <文件名> -type <pkcs12> -target <文件名> -target_pw <口令> -target_type <cms | sslight> -cert -list <all | personal | CA | site> -db <文件名> -pw <口令> -type <cms | sslight> -cert -modify -db <文件名> -pw <口令> -label <标号> -trust <enable | disable> -cert -receive -file <文件名> -db <文件名> -pw <口令> -format <ascii | binary> -default _cert <no | yes> -cert -setdefault -db <文件名> -pw <口令> -label <标号> -cert -sign -file <文件名> -db <文件名> -pw <口令> -label <标号> -target <文件名> -format <ascii | binary> -expire <天数>
-certreq -create -db <文件名> -pw <口令> -label <标号> -dn <专有名称> -size <1024 | 512> -file <文件名> -certreq -delete -db <文件名> -pw <口令> -label <标号> -certreq -details -db <文件名> -pw <口令> -label <标号> -certreq -extract -db <文件名> -pw <口令> -label <标号> -target <文件名> -certreq -list -db <文件名> -pw <口令> -certreq -recreate -db <文件名> -pw <口令> -label <标号> -target <文件名>
-help
-version
为了消去一些 Java CLI 调用上的输入,可在特性文件中指定用户特性。通过 -Dikeycmd.properties Java 选项,可在 Java 命令行上指定特性文件。样本特性文件 ikeycmd.properties 是作为启用 Java 应用程序以修改其应用程序缺省设置的样本而提供的。