Sun Java System Application Server 9.1 高可用性管理指南

配置 Sun Java System Web Server

对于 Sun Java System Web Server,使用 Sun Java System Application Server 9.1 安装向导安装负载平衡器插件时,该安装向导将自动执行所有必要的配置。不需要进行手动配置。与 Application Server 9.1 捆绑在一起的负载平衡器插件支持 Sun Java System Web Server 的以下版本:

但是,如果使用的是 GlassFish v2,必须从 http://download.java.net/javaee5/external/SunOS_X86/aslb/jars/aslb-9.1-MS4-b7.jar 单独下载 Application Server 负载平衡器插件,并进行一些手动更改以对其进行设置。有关如何为 GlassFish v2 安装和设置该插件的详细步骤,请参阅《Sun Java System Application Server 9.1 Installation Guide》中的“To Install the Load Balancing Plug-in (standalone)”一节。

Procedure配置 Sun Java System Web Server

开始之前

注 –

以下步骤由 Application Server 9.1 的安装程序自动执行。但是,如果使用的是 GlassFish v2,将需要手动执行这些步骤。


  1. 在 Web 服务器实例的 magnus.conf 文件中,添加以下行:

    ##BEGIN EE LB Plug-in Parameters
    Init fn="load-modules"
    shlib="web-server-install-dir/plugins/lbplugin/bin/libpassthrough.so"
    funcs="init-passthrough,service-passthrough,name-trans-passthrough" Thread="no"
    Init fn="init-passthrough"
    ##END EE LB Plug-in Parameters=
  2. 如果以下行尚不存在,请附加该行:

    Init fn="load-modules" shlib=".../libj2eeplugin.so" shlib_flags="(global|now)"
  3. 在文件 web-server-install-dir/config/obj.conf 中,在首次出现的字符串 nametrans 之前在单行中插入以下内容:

    Nametrans fn="name-trans-passthrough" name="lbplugin"
    config-file="web-server-install-dir/config/loadbalancer.xml"

    NameTrans 条目在 obj.conf 中的显示顺序非常重要。安装程序会将 NameTrans 条目放在正确的位置,但是,如果要因其他目的而编辑 obj.conf,必须确保顺序仍然正确。尤其是,负载平衡器信息必须在 document-root 函数之前显示。有关 obj.conf 文件的更多信息,请参见《Sun Java System Web Server 7.0 Administrator’s Configuration File Reference》

  4. 将以下行附加到文件 web-server-install-dir/config/obj.conf 中:

    <Object name = "lbplugin"> 
    ObjectType fn="force-type" type="magnus-internal/lbplugin"
    PathCheck fn="deny-existence" path="*/WEB-INF/*"
    Service type="magnus-internal/lbplugin" fn="service-passthrough"
    Error reason="Bad Gateway" fn="send-error" uri="$docroot/badgateway.html"
    </Object>
  5. 编辑 web-server-install-dir /start 脚本,将 LD_LIBRARY_PATH 值更新为包括 app-server-install-dir/lib/lbplugin/lib

    app-server-install-dir /lib/lbplugin/lib 目录包含负载平衡器插件所需的二进制文件。

  6. (可选的)对于基于 DAS 的新负载平衡器管理,配置 Web 服务器的 SSL 功能。

    有关 Web Server 6.1 的详细说明,请参见在 SSL 模式下为 Sun Java System Web Server 6.1 设置负载平衡器

    有关 Web Server 7 的详细说明,请参见在 SSL 模式下为 Web Server 7 设置负载平衡器

  7. 如果 Web 服务器尚未运行,请启动它。

配置 Sun Java System Web Server 以使用“自动应用”功能

“自动应用”是 Application Server 9.1 提供的一种功能,用于通过线路将负载平衡器配置自动发送到 Web 服务器配置目录。有关此功能的更多信息,请参见自动应用。以下过程介绍了如何配置 Sun Java System Web Server(版本 6 和 7)以使用此功能。

Procedure在 SSL 模式下为 Sun Java System Web Server 6.1 设置负载平衡器


注 –

仅当希望使用负载平衡器插件的“自动应用”功能时,才需要执行本节中的步骤。此功能有助于通过线路将负载平衡器配置自动发送到 Web 服务器配置目录。


  1. 使用浏览器,访问 Web Server 的管理控制台并登录。

  2. 选择服务器实例,然后单击“管理”。

  3. 单击“安全性”选项卡。

  4. 通过提供用户名和密码初始化信任数据库。为此,可以使用 certutil 命令或 GUI。certutil 命令的以下选项可用于初始化信任数据库:

    certutil -N -P  "https-instance-name-hostname-" -d .
    • certutil 发出提示时,输入密码对您的密钥进行加密。输入密码(密码将用于对密钥进行加密)。密码至少应该包含八个字符,且应该至少包含一个非字母字符。

    • 当系统提示您输入新密码时,指定密码。

  5. 使用以下命令创建一个本地证书授权机构 (Certificate Authority, CA) 样例:

    certutil -S -P "https-boqueron.virkki.com-boqueron-" 
    -d . -n SelfCA -s "CN=Self CA,OU=virkki.com,C=US" 
    -x -t "TC,TC,TC" -m 101 -v 99 -5
    1. 当系统提示您输入 0-7 以表示证书类型时,键入表示 SSL CA 的 5。再次出现提示时,指定 9。

    2. 在被询问 "Is this a critical extension [y/n]?" 时,指定 "y"。

  6. 使用上面的样例 CA 生成证书

    certutil -S -P "https-instance-name-hostname-"
    -d . -n MyServerCert -s "CN=boqueron.virkki.com,C=US"
    -c SelfCA -t "u,u,u" -m 102 -v 99 -5
    1. 当系统提示您输入 0-7 以表示证书类型时,键入表示 SSL 服务器的 1。再次出现提示时,指定 9。

    2. 在被询问 "Is this a critical extension [y/n]?"时,指定 "y"。

  7. 创建 HTTPS 侦听器,如以下步骤所述:

    1. 登录到 Web 服务器的管理服务器。

    2. 选择一个服务器,然后单击“管理”。

    3. 单击“添加侦听套接字”。在“添加侦听套接字”页面中,执行以下操作:

      1. 指定端口号。

      2. 确保在“服务器名”中指定服务器的全限定域名 (fully qualified domain name, FQDN)。例如,如果主机名是 machine1,域名是 server.example.com,则 FQDN 是 machine1.server.example.com。

      3. 从“安全性”下拉列表中选择“启用”。

      4. 单击“确定”。

    4. 转到“编辑侦听套接字”页面,然后选择刚创建的侦听套接字。

    5. 在“侦听套接字”页面中,验证服务器证书名是否与在步骤 6 中提供的证书名相同。

Procedure为 Sun Java System Web Server 6.1 导出和导入 DAS 证书

  1. 如果使用的是 Application Server 9.1,请通过执行以下命令导出 DAS 证书:

    <appserver_install_dir>/lib/upgrade/pk12util -d <domain root>/config -o sjsas.p12-W
    <file password> -K <master password> -n s1as
    • 如果使用的是 GlassFish v2,必须使用以下命令导出 DAS 证书:

      <JAVA_HOME>/bin/keytool -export -rfc -alias s1as -keystore
      <GLASSFISH_HOME>/domains/<DOMAIN_NAME>/config/keystore.jks-file s1as.rfc

      其中,<GLASSFISH_HOME> 表示 Application Server 安装目录,<DOMAIN_NAME> 表示要导出其证书的域。

    • 将证书文件复制到 Web 服务器配置目录。

  2. 如果使用的是 Application Server 9.1,请使用以下命令将 DAS 证书导入到 Web Server 实例中:

    <webserver_install_dir>/bin/https/admin/bin/pk12util-i sjsas.p12 -d 
    <webserver_install_dir>/alias -W<file password> -K <webserver security db password> -P
    <instance-name>-<hostname>-
    <webserver_install_dir>/bin/https/admin/bin/certutil -M -n s1as -t "TCu"
    -d <webserver_install_dir>/alias -P <instance-name>-<hostname>-

    这些命令将使 Application Server CA 成为受信任的 CA 以同时签署客户机证书和服务器证书。

    • 如果使用的是 GlassFish v2,请从使用 NSS 安全工具 certutil 创建的 rfc 文件导入 DAS 证书。

      <webserver_install_dir>/bin/certutil -A -a -n s1as -t "TCu" -i s1as.rfc 
      -d <webserver_install_dir>/alias -P <instance-name>-<hostname>-

      可以使用以下命令检查此证书是否存在,将列出 s1as 证书以及其他 CA 证书(包括默认的服务器证书)。确保在单行中键入命令。

      <WS_INSTALL_ROOT>/bin/certutil -L 
      -d <webserver_install_dir>/alias -P <instance-name>-<hostname>-
  3. 如果 obj.conf 不包含以下行,请在文件结尾附加它们。如果使用的是 Application Server 9.1,安装程序将自动执行此步骤。

    <Object ppath="*lbconfigupdate*">
    PathCheck fn="get-client-cert" dorequest="1" require="1"
    <Object>
    <Object ppath="*lbgetmonitordata*">
    PathCheck fn="get-client-cert" dorequest="1" require="1"
    </Object>
  4. 可以使用在验证安装一节中提供的步骤从 DAS 验证上面的设置。可以使用任何其他 CA 和服务器证书,而不是使用本地 CA。在这种情况下,可以跳过上一节中列出的步骤 5 和 6,但是需要导入从其他 CA 获得的服务器证书。

在 SSL 模式下为 Web Server 7 设置负载平衡器

  1. 使用以下命令启动 Web Server 的管理服务器。

    webserver-install-dir/admin_server/bin/startserv
  2. 创建 HTTPS 侦听器,如以下步骤所述。如果 HTTP 侦听器已存在,则可以跳过以下步骤,并前进到为 Sun Java System Web Server 7 导出和导入 DAS 证书一节。

    1. 登录到 Web Server 管理控制台。

    2. 选择默认配置。通常,默认配置名称将与主机名完全相同。要从“日常任务”页面执行此操作,请从“选择配置”列表中选择配置并单击“编辑配置”。或者,打开“配置”页面,单击“配置”表中的默认配置名称。

    3. 如果显示的是“日常任务”页面,请单击“请求服务器证书”。否则,如果显示的是“配置”页面,请打开“证书”页面,并单击“服务器证书”表中的“请求”按钮。这是为此默认配置创建自签名服务器证书所必需的。

    4. 提供“请求服务器证书”窗口要求的详细信息。

      执行此操作时,只需确保为“*服务器名 (cn)”提供的值是安装 Web 服务器的计算机的全限定域名 (fully qualified domain name, FQDN) 即可。例如,如果主机名是 machine1,域名是 server.example.com,则 FQDN 是 machine1.server.example.com。选择所提供的任何默认值。

      也可以使用以下命令创建自签名证书。确保在单行中键入命令。

      webserver-install-dir/bin/wadm create-selfsigned-cert --user=
      admin-user --server-name=host-name 
      --nickname=ServerCert --token=internal --config=config-name
      
    5. 返回到所选的配置页。

    6. 打开“HTTP 侦听器”页面,然后单击“新建”按钮。这将创建启用 SSL 的 HTTP 侦听器。

    7. 提供“新建 HTTP 侦听器”向导要求的详细信息。确保服务器名是在前面步骤中提供的 FQDN。选择 "SSL" 按钮,然后从“证书”列表中选择以前创建的服务器证书。例如,cert-machine1.server.example.com。

      也可以使用以下命令创建 HTTP 侦听器。确保在单行中键入每个命令。

      webserver-install-dir/bin/wadm create-http-listener 
      --user=admin-user --server-name=host-name 
      --default-virtual-server-name=default-virtual-server-name 
      --listener-port=8090 --config=config-name http-listener-ssl
      webserver-install-dir/bin/wadm set-ssl-prop 
      --user=admin-user --http-listener=http-listener-ssl 
      --config=config-name enabled=true server-cert-nickname=ServerCert
    8. 执行上面列出的步骤后,将在管理控制台的右上角看到警报“部署暂挂”。单击它,并按照说明完成部署。此步骤确保将在 Web 服务器的管理服务器中对配置存储进行的更改复制到 Web 服务器实例。

Procedure为 Sun Java System Web Server 7 导出和导入 DAS 证书

通过导出和导入 DAS 证书,可以使 DAS 成为 Web Server 的受信任客户机。使用 DAS 证书的客户机验证可确保只有 DAS 作为受信任客户机连接到 Web Server。

  1. 打开终端窗口,并使用以下命令设置 LD_LIBRARY_PATH:

    export LD_LIBRARY_PATH=/opt/SUNWappserver/lib
  2. 如果使用的是 Application Server 9.1,请通过执行以下命令导出 DAS 证书。DAS 证书同时用作服务器证书和客户机证书。

    <appserver_install_dir>/lib/upgrade/pk12util -d <domain root>/config -o s1as.p12 -W
    <s1as.pk12-file-password> -K <master password> -n s1as
    • 如果使用的是 GlassFish v2,请使用名为 keytool 的 Java SE 5.0 安全工具导出以别名 "s1as" 命名的 DAS 证书。执行此操作时,选择 -rfc 选项以可打印编码格式(如 Internet RFC 1421 标准所定义)导出证书。

      从命令行,可以使用以下命令导出 DAS 证书:

      <JAVA_HOME>/bin/keytool -export -rfc -alias s1as -keystore
      <GLASSFISH_HOME>/domains/<DOMAIN_NAME>/config/keystore.jks-file s1as.rfc

      其中,<GLASSFISH_HOME> 表示 Application Server 安装目录,<DOMAIN_NAME> 表示要导出其证书的域。

    • 将证书文件复制到 Web 服务器配置目录。

  3. 如果使用的是 Application Server 9.1,请将 DAS 证书导入到 Web Server 实例中,并使用以下命令设置证书的信任属性:

    <webserver_install_dir>/bin/pk12util -i <path_to_s1as.pk12-file> 
    -d <webserver_install_dir>/admin-server/config-store/<default-config-name>/config 
    -K <webserver security db password> -W <s1as.pk12-file-passwd>
    <webserver_install_dir>/bin/certutil -M -n s1as -t "TCu" 
    -d <webserver_install_dir>/admin-server/config-store/<default-config-name>/config

    这些命令将使 Application Server CA 成为受信任的 CA 以同时签署客户机证书和服务器证书。

    • 如果使用的是 GlassFish v2,请从使用 NSS 安全工具 certutil 创建的 rfc 文件导入 DAS 证书。

      <webserver_install_dir>/bin/certutil -A -a -n s1as -t "TCu" -i s1as.rfc -d
      <webserver_install_dir>/admin-server/config-store/<CONFIG_NAME>/config

      其中,<webserver_install_dir> 表示 Web 服务器安装目录,<CONFIG_NAME> 表示为默认 Web 服务器实例创建的配置名称。

      可以使用以下命令检查此证书是否存在,将列出 s1as 证书以及其他 CA 证书(包括默认的服务器证书)。确保在单行中键入整个命令。

      <webserver_install_dir>/bin/certutil -L -d
      <webserver_install_dir>/admin-server/config-store/
      <DEFAULT_CONFIG_NAME>/config

      也可以使用 Web Server 管理控制台对此进行查看。选择已向其导入证书的配置(本例中为默认配置),然后选择“证书”选项卡。要查看所有的可用证书,请选择“证书颁发机构”子选项卡。

  4. 如果使用的是 GlassFish v2,请对 Web Server 7 进行以下配置更改。如果使用的是 Application Server 9.1,可以跳到下一步。

    1. 在位于 <WS_INSTALL_ROOT>/admin-server/config-store/<DEFAULT_CONFIG_NAME>/config/ obj.conf 文件中附加以下行。确保在键入这些行时没有包含任何结尾空格。

       <Object ppath="*lbconfigupdate*">
       PathCheck fn="get-client-cert" dorequest="1" require="1"
      </Object>
      <Object ppath="*lbgetmonitordata*">
       PathCheck fn="get-client-cert" dorequest="1" require="1"
      </Object>
  5. 部署该配置。进行前面步骤中列出的更改时,管理控制台将此配置标记为要部署。

    1. 在 Web Server 管理控制台中选择“部署暂挂”的图标。也可以使用 CLI 实用程序 wadm 部署此配置,如下所示:

      <webserver_install_dir>/bin/wadm deploy-config --user=<admin> <DEFAULT_CONFIG_NAME>
  6. 从 GlassFish DAS 测试此设置,以查看它是否通过 SSL 与已配置的 HTTP 负载平衡器进行通信。有关更多信息,请参见验证安装