本节介绍几个使用 certutil 和 pk12util 创建和管理密钥和证书的常用过程。有关certutil 和 pk12util 的详细信息,请参见使用网络安全服务 (NSS) 工具以及 NSS Security Tools 站点 http://www.mozilla.org/projects/security/pki/nss/tools 上的文档。
通过在 java.security 属性文件(位于 Java 运行时的 JAVA_HOME/jre/lib/security 目录中)中配置 PKCS#11 提供者,您还可以使用 J2SE keytool 实用程序来管理密钥和证书。有关使用 keytool 的详细信息,请参见位于 http://java.sun.com/j2se/1.5.0/docs/guide/security/p11guide.html 的《Java PKCS#11 Reference Guide》。
本节包括以下数个主题:
要列出已配置的 PKCS#11 令牌中的密钥和证书,请运行以下命令:
certutil -L -d AS_NSS_DB [-h tokenname]
例如,要列出默认 NSS 软令牌的内容,请键入以下命令:
certutil -L -d AS_NSS_DB
标准输出类似于以下内容:
verisignc1g1 T,c,c verisignc1g2 T,c,c verisignc1g3 T,c,c verisignc2g3 T,c,c verisignsecureserver T,c,c verisignc2g1 T,c,c verisignc2g2 T,c,c verisignc3g1 T,c,c verisignc3g2 T,c,c verisignc3g3 T,c,c s1as u,u,u |
此输出的左列显示了令牌的名称,右列显示了一组(三个)信任属性,对于 Application Server 证书,这组属性通常为 T,c,c。与 J2SE java.security.KeyStore API(它仅包含一个信任级别)不同,NSS 技术包含多个信任级别。Application Server 主要关注第一个信任属性,该属性说明此令牌如何使用 SSL。对于该属性:
T 表示可信任证书授权机构 (Certificate Authority, CA) 颁发客户机证书。 |
u 表示您可以使用证书(及密钥)进行验证或签名。 |
属性组合 u,u,u 表示数据库中存在私钥。 |
要列出硬件令牌 mytoken 的内容,请运行以下命令:
certutil -L -d AS_NSS_DB -h mytoken
系统将提示您输入硬件令牌的密码。标准输出类似于以下内容:
Enter Password or Pin for "mytoken": mytoken:Server-Cert 	u,u,u |
可以使用 certutil 创建自签名证书以及导入或导出证书。要导入或导出私钥,请使用 pk12util 实用程序。有关更多详细信息,请参见使用网络安全服务 (NSS) 工具。
在 Application Server 中,请勿直接使用 NSS 工具 certutil 和 modutil 修改 NSS 密码。如果这样做,Application Server 中的安全性数据可能会被破坏。