对于 Sun Java System Web Server,使用 Sun Java System Application Server 9.1 安装向导安装负载平衡器插件时,该安装向导将自动执行所有必要的配置。不需要进行手动配置。与 Application Server 9.1 捆绑在一起的负载平衡器插件支持 Sun Java System Web Server 的以下版本:
Sun Java System Web Server 6.1
Sun Java System Web Server 7.0
但是,如果使用的是 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)”一节。
以下步骤由 Application Server 9.1 的安装程序自动执行。但是,如果使用的是 GlassFish v2,将需要手动执行这些步骤。
在 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=
如果以下行尚不存在,请附加该行:
Init fn="load-modules" shlib=".../libj2eeplugin.so" shlib_flags="(global|now)"
在文件 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》。
将以下行附加到文件 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>
编辑 web-server-install-dir /start 脚本,将 LD_LIBRARY_PATH 值更新为包括 app-server-install-dir/lib/lbplugin/lib。
app-server-install-dir /lib/lbplugin/lib 目录包含负载平衡器插件所需的二进制文件。
(可选的)对于基于 DAS 的新负载平衡器管理,配置 Web 服务器的 SSL 功能。
有关 Web Server 6.1 的详细说明,请参见在 SSL 模式下为 Sun Java System Web Server 6.1 设置负载平衡器 。
有关 Web Server 7 的详细说明,请参见在 SSL 模式下为 Web Server 7 设置负载平衡器。
如果 Web 服务器尚未运行,请启动它。
“自动应用”是 Application Server 9.1 提供的一种功能,用于通过线路将负载平衡器配置自动发送到 Web 服务器配置目录。有关此功能的更多信息,请参见自动应用。以下过程介绍了如何配置 Sun Java System Web Server(版本 6 和 7)以使用此功能。
仅当希望使用负载平衡器插件的“自动应用”功能时,才需要执行本节中的步骤。此功能有助于通过线路将负载平衡器配置自动发送到 Web 服务器配置目录。
使用浏览器,访问 Web Server 的管理控制台并登录。
选择服务器实例,然后单击“管理”。
单击“安全性”选项卡。
通过提供用户名和密码初始化信任数据库。为此,可以使用 certutil 命令或 GUI。certutil 命令的以下选项可用于初始化信任数据库:
certutil -N -P "https-instance-name-hostname-" -d .
在 certutil 发出提示时,输入密码对您的密钥进行加密。输入密码(密码将用于对密钥进行加密)。密码至少应该包含八个字符,且应该至少包含一个非字母字符。
当系统提示您输入新密码时,指定密码。
使用以下命令创建一个本地证书授权机构 (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
使用上面的样例 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
创建 HTTPS 侦听器,如以下步骤所述:
如果使用的是 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
如果使用的是 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>-
如果 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>
可以使用在验证安装一节中提供的步骤从 DAS 验证上面的设置。可以使用任何其他 CA 和服务器证书,而不是使用本地 CA。在这种情况下,可以跳过上一节中列出的步骤 5 和 6,但是需要导入从其他 CA 获得的服务器证书。
使用以下命令启动 Web Server 的管理服务器。
webserver-install-dir/admin_server/bin/startserv
创建 HTTPS 侦听器,如以下步骤所述。如果 HTTP 侦听器已存在,则可以跳过以下步骤,并前进到为 Sun Java System Web Server 7 导出和导入 DAS 证书一节。
登录到 Web Server 管理控制台。
选择默认配置。通常,默认配置名称将与主机名完全相同。要从“日常任务”页面执行此操作,请从“选择配置”列表中选择配置并单击“编辑配置”。或者,打开“配置”页面,单击“配置”表中的默认配置名称。
如果显示的是“日常任务”页面,请单击“请求服务器证书”。否则,如果显示的是“配置”页面,请打开“证书”页面,并单击“服务器证书”表中的“请求”按钮。这是为此默认配置创建自签名服务器证书所必需的。
提供“请求服务器证书”窗口要求的详细信息。
执行此操作时,只需确保为“*服务器名 (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
返回到所选的配置页。
打开“HTTP 侦听器”页面,然后单击“新建”按钮。这将创建启用 SSL 的 HTTP 侦听器。
提供“新建 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
执行上面列出的步骤后,将在管理控制台的右上角看到警报“部署暂挂”。单击它,并按照说明完成部署。此步骤确保将在 Web 服务器的管理服务器中对配置存储进行的更改复制到 Web 服务器实例。
通过导出和导入 DAS 证书,可以使 DAS 成为 Web Server 的受信任客户机。使用 DAS 证书的客户机验证可确保只有 DAS 作为受信任客户机连接到 Web Server。
打开终端窗口,并使用以下命令设置 LD_LIBRARY_PATH:
export LD_LIBRARY_PATH=/opt/SUNWappserver/lib
如果使用的是 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 服务器配置目录。
如果使用的是 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 管理控制台对此进行查看。选择已向其导入证书的配置(本例中为默认配置),然后选择“证书”选项卡。要查看所有的可用证书,请选择“证书颁发机构”子选项卡。
如果使用的是 GlassFish v2,请对 Web Server 7 进行以下配置更改。如果使用的是 Application Server 9.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>
部署该配置。进行前面步骤中列出的更改时,管理控制台将此配置标记为要部署。
从 GlassFish DAS 测试此设置,以查看它是否通过 SSL 与已配置的 HTTP 负载平衡器进行通信。有关更多信息,请参见验证安装。