启用定制密码加密

您需要保护 WebSphere® Application Server 配置中所包含的密码。创建服务器概要文件后,可通过创建定制类对密码进行加密,从而增强保护。

开始之前

创建用于对密码进行加密的定制类。有关更多信息,请参阅定制密码加密的插接点

关于此任务

请完成以下步骤以启用定制密码加密。有关应用程序服务器概要文件中包含应该加密的密码的文件及其导航路径的列表,请参阅在文件中对密码进行编码

过程

  1. 为每个服务器和客户机进程添加以下系统属性。对于服务器进程,请为每个进程更新 server.xml 文件。请以具有 -D 前缀的 genericJvmArgument 参数的形式添加这些属性。
    com.ibm.wsspi.security.crypto.customPasswordEncryptionClass=
           com.acme.myPasswordEncryptionClass
    com.ibm.wsspi.security.crypto.customPasswordEncryptionEnabled=true
    要点: 对于 wsadmin 客户机,如果您以已连接方式使用 wsadmin,那么必须使用 AdminTask.setJVMSystemProperties 命令或通过控制台在已连接的 Deployment Manager 或服务器中设置此属性。如果您以本地方式 (conntype=NONE) 使用 wsadmin,那么可以使用 javaoption 命令选项来设置此属性,如下所示:
    wsadmin -conntype none -lang jython -javaoption
    -Dcom.ibm.wsspi.security.crypto.customPasswordEncryptionClass=<encryptionClassToUse>
    提示: 如果定制加密类的名称是 com.ibm.wsspi.security.crypto.CustomPasswordEncryptionImpl,那么当类路径中存在此类时,会将其自动启用。当定制实现具有此包和类名时,不要定义先前列出的系统属性。要对此类禁用加密,您必须指定 com.ibm.wsspi.security.crypto.customPasswordEncryptionEnabled=false 作为系统属性。
  2. 选择以下其中一种方法来配置 WebSphere Application Server 运行时,以装入定制加密实现类:
    • 将定制加密类放置在您创建的 ${WAS_INSTALL_ROOT}/classes 目录内的 Java™ 归档 (JAR) 文件中。
      避免故障 避免故障: WebSphere Application Server 不会创建 ${WAS_INSTALL_ROOT}/classes 目录。有关 classes 目录的更多信息,请参阅“在概要文件中为定制类创建 classes 子目录”主题。gotcha
    • 将定制加密类放置在 ${WAS_HOME}/lib/ext 目录内的 Java 归档 (JAR) 文件中。
  3. 重新启动所有服务器进程。
  4. 编辑每个包含密码的配置文档并保存该配置。 然后所有密码字段将通过 WSEncoderDecoder 实用程序进行处理,该实用程序在被启用时称为插入点。{custom:alias} 标记显示在配置文档中。这些密码即使已被加密,它们仍然使用基本 64 位编码。除了标记不同之外,它们类似于经过编码的密码。
  5. 使用 PropsFilePasswordEncoder(.bat 或 .sh)实用程序对客户端属性文件中的任何密码进行加密。 此实用程序要求先前列出的属性已在脚本中定义为系统属性,以对新密码进行加密而不是进行编码。您将需要编辑该脚本,以将这些属性添加到 Java 命令行。例如:
    %JAVA_EXE% -Dcom.ibm.wsspi.security.crypto.customPasswordEncryptionEnabled=true 
    -Dcom.ibm.wsspi.security.crypto.customPasswordEncryptionClass=mysample.MySampleEncryption 
    -Dcmd.properties.file=%TMPJAVAPROPFILE% 
    "-Dwas.install.root=%WAS_HOME%" com.ibm.ws.bootstrap.WSLauncher com.ibm.ws.security.util.PropFilePasswordEncoder %*
    有关需要通过 PropsFilePasswordEncoder 来运行的文件的列表,请参阅在文件中对密码进行编码中的表 2。
  6. 要从客户机 Java 虚拟机 (JVM) 对密码进行解密,请添加先前列出的属性作为每个客户机实用程序的系统属性。
  7. 在启用此功能前,请确保所有节点在其类路径中具有定制加密类。 执行启用的顺序很重要。将新节点添加到包含密码加密的单元时,在使用 addNode 命令前,新节点必须包含定制加密类。请考虑以下 WebSphere Application Server Network Deployment 启用方案:
    1. 在联合到 Deployment Manager 单元之前,StandAloneProfile 概要文件用不同密钥对密码进行加密。对于此方案,在运行 addNode 命令之前,您必须卸载定制密码加密,以确保配置在密码的前面有 {xor} 标记。在运行 addNode 命令之前,插入点的相同实现必须位于 /classes 目录中,并且设置了正确的配置属性,以便在完成联合后,新节点可以识别 security.xml 文件的加密密码格式。
    2. 在联合到 Deployment Manager 单元之前,StandAloneProfile 概要文件尚未配置密码加密。在运行 addNode 命令之前,插入点的相同实现必须位于 /classes 目录中,并且设置了正确的配置属性,以便在完成联合后,新节点可以识别 security.xml 文件的加密密码格式。
    3. 如果在具有多个节点的单元中启用定制密码加密,请更新正确的配置属性并具有位于所有节点上的定制密码加密实现类。停止该单元中的所有进程,然后启动 Deployment Manager。使用管理控制台编辑安全性配置,然后保存。通过查看 security.xml 文件以了解密码前面是否有 {custom:alias} 标记,验证是否已对密码进行加密。
    4. 在每个节点上运行 syncNode 命令,并单独启动各个节点。如果有任何节点未能启动,请确保它们已在每个 security.xml 文件中正确地启用了定制密码加密,且实现类位于平台的适当 /classes 目录中。

结果

已启用定制密码加密。

下一步做什么

如果定制密码加密失败或不再是必需的,请参阅禁用定制密码加密

指示主题类型的图标 任务主题



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