Sun Java System Application Server Enterprise Edition 8.2 管理指南

使用 Java 安全套接口扩展 (Java Secure Socket Extension, JSSE) 工具

使用 keytool 可以设置和使用 JSSE(Java Secure Socket Extension,Java 安全套接口扩展)数字证书。在 Platform Edition 和 Enterprise Edition 中,客户机端(应用程序客户机端或独立客户机端)均使用 JSSE 格式。

J2SE SDK 附带了 keytool,管理员可以使用它来管理公钥/私钥对和关联证书。还允许用户高速缓存正与其通信的另一方的公钥(以证书形式)。

要运行 keytool,必须先配置 shell 环境以使 J2SE /bin 目录位于路径中;或者必须在命令行中提供此工具的完整路径。有关 keytool 的更多信息,请参见 http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html 上的 keytool 文档。

使用 keytool 实用程序

以下示例说明了使用 JSSE 工具处理证书的相关用法:

使用 keytool 实用程序生成证书

使用 keytool 可以生成、导入和导出证书。默认情况下,keytool 将在其运行所在的目录中创建一个密钥库文件。

  1. 转至要运行证书的目录。

    始终在包含密钥库和信任库文件的目录中生成证书,默认目录为 domain-dir/config。有关更改这些文件位置的信息,请参见更改证书文件的位置

  2. 输入以下 keytool 命令以在密钥库文件 keystore.jks 中生成证书:


    keytool -genkey -alias keyAlias-keyalg RSA
     -keypass changeit
     -storepass changeit
    -keystore keystore.jks

    使用任一唯一的名称作为您的 keyAlias。如果您已更改密钥库或私钥密码的默认值,请将以上命令中的 changeit 替换为新密码。

    将显示一个要求您输入姓名、组织和其他信息的提示,keytool 将使用这些信息来生成证书。

  3. 输入以下 keytool 命令以将生成的证书导出到文件 server.cer(或 client.cer,如果您愿意):


    keytool -export -alias keyAlias-storepass changeit
     -file server.cer
     -keystore keystore.jks
  4. 如果要求证书授权机构签名的证书,请参见使用 keytool 实用程序为数字证书签名

  5. 要创建信任库文件 cacerts.jks 并将证书添加到信任库中,请输入以下 keytool 命令:


    keytool -import -v -trustcacerts
    -alias keyAlias
     -file server.cer
    -keystore cacerts.jks
     -keypass changeit
  6. 如果您已更改密钥库或私钥密码的默认值,请将以上命令中的 changeit 替换为新密码。

    工具将显示有关证书的信息并提示您是否要信任该证书。

  7. 键入 yes,然后按 Enter 键。

    然后,keytool 将显示与下面类似的信息:


    Certificate was added to keystore
    [Saving cacerts.jks]
  8. 重新启动 Application Server。

使用 keytool 实用程序为数字证书签名

创建数字证书之后,拥有者必须为其签名以防止伪造。电子商务站点或身份验证对其很重要的那些站点可以从知名的证书授权机构 (CA) 购买证书。如果无需考虑验证,例如当专用安全通信可以满足全部需求时,则可节省获取 CA 证书所花费的时间和费用并使用自签名证书。

  1. 按照 CA Web 站点上的说明进行操作来生成证书密钥对。

  2. 下载生成的证书密钥对。

    将证书保存在包含密钥库和信任库文件的目录中,默认目录为 domain-dir/config。请参见更改证书文件的位置

  3. 在 shell 中,转至包含证书的目录。

  4. 使用 keytool 将证书导入到本地密钥库和本地信任库(如有必要)。


    keytool -import -v -trustcacerts
    -alias keyAlias
     -file server.cer
    -keystore cacerts.jks
     -keypass changeit
    -storepass changeit

    如果密钥库或私钥密码不是默认密码,请将以上命令中的 changeit 替换为新密码。

  5. 重新启动 Application Server。

使用 keytool 实用程序删除证书

要删除现有证书,请使用 keytool -delete 命令,例如:

keytool -delete
 -alias keyAlias
 -keystore keystore-name
 -storepass password