[z/OS]

RACF 密钥环设置

使用 Java 创建用于 RACF 密钥库的 RACFInputStream

在 SSL 认证过程中,WebSphere® Application Server 将作为 PERSONAL 证书连接的证书视为 KeyEntry。因为专用密钥可用,所以可在安全套接字层 (SSL) 握手中将该证书用作最终用户证书。

WebSphere Application Server 将作为 CERTAUTH 证书连接的证书视为 TrustedCertEntry,并且将该证书视为认证中心 (CA)。密钥环需要作为 PERSONAL 连接的证书和作为 CERTAUTH 连接的 CA 证书。作为 SITE 连接的证书在此发行版中不受支持。

以下样本代码中显示了 Java™ 安全套接字扩展 (JSSE) 客户机和服务器可用于信任和密钥信息的 RACF® 密钥环:
Certificate Label Name Cert Owner USAGE    DEFAULT
---------------------- ---------- -------- -------
PersonalEndUserCert    ID(USERID) PERSONAL YES
PersonalEndUserCACert  CERTAUTH   CERTAUTH NO
必须将证书路径提供程序添加至 Java 环境,以通过 WebSphere Application Server 从资源访问控制设施 (RACF) 读取的证书来构造证书链。将以下行添加至 java.security 文件提供程序列表:
security.provider.X=com.ibm.security.cert.IBMCertPath

如果某个 RACF 证书未能装入,那么不会装入密钥库。必须从密钥环移除任何不想要的证书。

RACFInputStream 包含三个参数:
  • userid - 包含拥有密钥环的用户标识的字符串
  • ringid - 包含 RACF 密钥环的名称的字符串
  • password - 包含密钥库的密码的字符数组
以下代码示例显示直接传递用户标识、环标识和空密码的 RACFInputStream 脚本:
import com.ibm.crypto.provider.RACFInputStream;

String ksfname;
char[] storePass = null;
              
RACFInputStream riStream = new RACFInputStream(System.getProperty("user.name"),
                                               ksfname, 
                                               storePass);
KeyStore racfKeyStore = KeyStore.getInstance("JCERACFKS");
racfKeyStore.load(riStream, storePass);                             
       
riStream.close();
在以上示例中,引用了系统属性 user.name 以提供 WebSphere Application Server 传递至 RACF 的用户标识。此示例不是典型的。

有关运行 RACFInputStream 脚本的更多信息,请参阅 z/OS Unique Considerations for the Java 2 SDK, Standard Edition, v6.0 文档。本主题的“相关链接”部分提供了指向此 z/OS® 文档的链接。

使用 URLStreamHandler 访问 RACFInputStream

在此发行版中,可通过用户定义的类并使用 URLStreamHandler 对象访问数据。WebSphere Application Server 可使用系统属性 java.protocol.handler.pkgs 定义访问数据的类。要访问位于服务授权工具 (SAF) RACF 密钥环中的数据,请将 safkeyring URL 与关联类配合使用。
要使用 URLStreamHandler 类创建 RACFInputStream,请定义以下 Java 属性:
-Djava.protocol.handler.pkgs
如果要使用 IBM® Java 密码术扩展 (IBMJCE) 提供程序来提供密码术支持,请将该属性设置为以下值:
-Djava.protocol.handler.pkgs=com.ibm.crypto.provider
如果要使用 IBMJCE4758 提供程序来提供 Cryptographic Support,那么将该属性设置为以下值:
-Djava.protocol.handler.pkgs=com.ibm.crypto.hdwrCCA.provider
可使用 URL 在 java.policy 文件中指定流处理程序。jarsigner 实用程序还会接受 URL 作为 -keystore 参数。当 RACF 密钥环中的证书验证签名 JAR 文件时,可指定 WebSphere Application Server 必须将该密钥环用作 java.policy 文件中密钥库的输入流,如以下示例代码中所示:
keystore "safkeyring://myracfid/my_key_ring", " JCERACFKS";
在此示例中,
  • safkeyring 是 URL 关键字,服务器用它来访问 URLStreamHandler 代码以从密钥环中读取数据
  • myracfid 是有权从密钥环中读取数据的 RACF 用户标识
  • my_key_ring 是从中读取数据的密钥环的名称
  • JCERACFKS 是针对 SAF (RACF) 密钥环密钥库定义的密钥库类型
启动 Java 虚拟机 (JVM) 时,必须将 java.protocol.handler.pkgs 属性设置为先前描述的某个值,以便 WebSphere Application Server 可调用相应的 URLStreamHandler。以下示例显示使用 safkeyring URL 的 jarsigner 实用程序:
jarsigner -keystore safkeyring://myracfid/my_key_ring -signedjar
ibmjceproviders.jar ibmjceprovider.jar ibmprovider -storetype JCERACFKS 
有关在 RACF 外部安全管理器中插入或更新信息的更多信息,请参阅以下出版物中的 RACDCERT 命令:
  • z/OS SecureWay Security Server RACF Security Administrator's Guide - SA22-7683
  • z/OS SecureWay Security Server RACF Command Language Reference - SA22-7687

指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsec_racfkeyringsetup
文件名:rsec_racfkeyringsetup.html