安装指南


Red Hat JBoss Web Server 5.6

安装和配置红帽 JBoss Web 服务器 5.6

摘要

在支持的操作系统中安装、升级和执行红帽 JBoss Web 服务器的基本配置。

对红帽文档提供反馈

我们感谢您对我们的技术内容的反馈,并且鼓励您告诉我们您的想法。如果您想添加注释、提供见解、更正错误甚至提问问题,您可以在文档中直接这样做。

注意

您必须有一个红帽帐户并登录到客户门户。

要从客户门户提交文档反馈,请执行以下操作:

  1. 选择 多页 HTML 格式。
  2. 单击文档右上角的" 反馈 "按钮。
  3. 突出显示您要提供反馈的文本部分。
  4. 单击突出显示的文本旁边的 添加反馈 对话框。
  5. 在页面右侧的文本框中输入您的反馈,然后单击 Submit

每次提交反馈时,我们会自动创建跟踪问题。点击 Submit 并开始监视问题或添加更多注释后,打开显示的链接。

感谢您的反馈。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息

第 1 章 Red Hat JBoss Web Server 安装简介

红帽 JBoss Web 服务器是用于托管 Java Web 应用程序的完整集成和认证组件集合。Red Hat JBoss Web Server 提供 Apache Tomcat Servlet 容器和 Tomcat 原生库完全支持的实现。

注意

如果您需要集群或会话复制支持 Java 应用程序,请使用 Red Hat JBoss Enterprise Application Platform(JBoss EAP)。

1.1. JBoss Web 服务器组件

JBoss Web 服务器包括组件,如 Apache Tomcat Servlet 容器、Tomcat 原生库、Tomcat vault、mod_cluster 库、Apache Portable Runtime(APR)和 OpenSSL。

Apache Tomcat
Apache Tomcat 是基于 Java Servlet 规范的 servlet 容器。JBoss Web 服务器包含 Apache Tomcat 9。
Tomcat 原生库
Tomcat 原生库提高了 Tomcat 的可扩展性、性能和与原生服务器技术的集成。
Tomcat vault
Tomcat vault 是 JBoss Web 服务器的扩展,用于安全地存储 JBoss Web 服务器使用的密码和其他敏感信息。
Mod_cluster
mod_cluster 库启用 Apache Tomcat 和 Apache HTTP 服务器的 mod_proxy_cluster 模块之间的通信。mod_cluster 库允许您将 Apache HTTP 服务器用作 JBoss Web 服务器的负载均衡器。有关配置 mod_cluster 或配置其他负载均衡器(如 mod_jkmod_proxy )的详情,请参考 HTTP Connectors 和 Load Balancing Guide
Apache Portable Runtime
Apache Portable Runtime(APR)提供卓越的可扩展性、性能和改进与原生服务器技术的集成。APR 是一个高度可移植的库,是 Apache HTTP 服务器 2.x 的核心。它可以访问:发送文件、epoll 和 OpenSSL 等高级 IO 功能;例如,操作系统级别的功能,如随机数字生成和系统状态;以及处理共享内存、NT 管道和 UNIX 套接字等原生进程。
OpenSSL
openssl 是实现安全套接字层(SSL)和传输层安全(TLS)协议的软件库。openssl 包括基本加密库。

有关 Red Hat JBoss Web Server 支持的组件的完整列表,请查看 JBoss Web Server 组件详情页

1.2. 红帽提供的 Apache Tomcat 发行版本之间的区别

Red Hat Enterprise Linux(RHEL)7 和 Red Hat JBoss Web Server 提供 Apache Tomcat 的独立发行版本。

注意

RHEL 8 平台订阅不提供 Apache Tomcat 的发行版本。在 RHEL 8 中,Apache Tomcat 仅作为中间件运行时订阅的一部分提供。

请考虑以下与 RHEL 7 和 JBoss Web 服务器提供的 Apache Tomcat 发行版之间的以下区别:

  • RHEL 7 提供 Tomcat 7。JBoss Web 服务器版本 3.1 提供 Tomcat 7 和 Tomcat 8。JBoss Web 服务器版本 5.x 提供 Tomcat 9。
  • 您可以从存档文件或 RPM 软件包安装 JBoss Web 服务器。您只能从 RPM 软件包安装 Apache Tomcat 的 RHEL 7 发行版本。
重要

Red Hat Enterprise Linux 6 不再被支持,随后从文档中被删除。

1.3. JBoss Web 服务器操作系统和配置

Red Hat JBoss Web Server 支持 Red Hat Enterprise Linux 和 Microsoft Windows 操作系统的不同版本。

1.4. JBoss Web 服务器安装方法

您可以使用每个平台可用的归档安装文件,在支持的 Red Hat Enterprise Linux 和 Microsoft Windows 系统上安装 Red Hat JBoss Web Server。您还可以使用 RPM 软件包在支持的 Red Hat Enterprise Linux 系统上安装 JBoss Web 服务器。

以下组件包含在存档安装文件中:这些组件是 JBoss Web 服务器安装的核心部分。

  • jws-5.6.0-application-server.zip

    • Apache Tomcat 9
    • mod_cluster
    • Tomcat vault
  • jws-5.6.0-application-server-<platform>-<architecture>.zip

    • 特定于平台的实用程序

1.5. JBoss Web Server 组件文档捆绑包

JBoss Web 服务器包括一个附加的文档包,其中包含每个组件的原始供应商文档。您可以从红帽客户门户网站下载此文档捆绑包 jws-docs-5.6.0.zip

文档捆绑包包含以下组件的其他文档:

  • Apache Tomcat
  • Tomcat 原生库
  • Tomcat vault

第 2 章 从归档文件在 Red Hat Enterprise Linux 上安装 JBoss Web Server

您可以从归档文件或 RPM 软件包在 Red Hat Enterprise Linux 上安装 JBoss Web Server。如果要从存档文件安装 JBoss Web 服务器,您可以从红帽客户门户网站下载并提取 JBoss Web 服务器归档文件。//http://access.redhat.com

从存档文件安装 JBoss Web 服务器时,您可以以不同的方式管理产品。例如,您可以在系统启动时使用系统守护进程,或者从命令行管理 JBoss Web 服务器。

2.1. 先决条件

  • 您已使用 YUM 软件包管理器或从压缩的存档安装了一个受支持的 Java Development Kit(JDK)。
  • 您的系统符合 Red Hat Enterprise Linux 软件包要求。

2.1.1. 使用 YUM 软件包管理器安装 JDK

您可以使用 YUM 软件包管理器安装 Java Development Kit(JDK)。有关支持的 JDK 的完整列表,请参阅支持的操作系统和配置

步骤

  1. 将您的 Red Hat Enterprise Linux 系统订阅到适当的频道:

    • OpenJDK:

      • rhel-7-server-rpms
      • rhel-8-server-rpms
    • IBM:

      • rhel-7-server-supplementary-rpms
      • rhel-8-server-supplementary-rpms
    重要

    Red Hat Enterprise Linux 6 不再被支持,随后从文档中被删除。

  2. 以 root 用户身份执行安装 1.8 JDK 的命令:

    Copy to Clipboard Toggle word wrap
    # yum install java-1.8.0-<VENDOR>-devel

    <VENDOR> 替换为 ibmopenjdk

  3. 以 root 用户身份运行以下命令以确保使用正确的 JDK:

    Copy to Clipboard Toggle word wrap
    # alternatives --config java
    Copy to Clipboard Toggle word wrap
    # alternatives --config javac

    这些命令返回可用 JDK 版本列表,其选择版本标有加号(+)符号。如果所选 JDK 不是所需的 JDK,请根据 shell 提示符中的指示更改到所需的 JDK。

    重要

    所有使用 java 和 java c 命令的软件都使用 替代方案 所设置的 JDK。更改 Java 替代方案可能会影响其他软件的运行。

2.1.2. 从压缩的归档安装 JDK

您可以从压缩的存档(如 .zip.tar 文件)安装 Java Development Kit(JDK)。有关支持的 JDK 的完整列表,请参阅支持的操作系统和配置

步骤

  1. 如果 JDK 从供应商的网站(Oracle 或 OpenJDK)下载,请使用供应商提供的安装说明并设置 JAVA_HOME 环境变量。
  2. 如果 JDK 是从压缩的归档中安装的,请为 Tomcat 设置 JAVA_HOME 环境变量:

    1. 在 Tomcat 的 bin 目录中(JWS_HOME/tomcat/bin),创建名为 setenv.sh 的文件。
    2. setenv.sh 文件中,输入 JAVA_HOME 路径定义。例如:

      Copy to Clipboard Toggle word wrap
      $ cat JWS_HOME/tomcat/bin/setenv.sh
      
      export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64

2.1.3. Red Hat Enterprise Linux 软件包要求

在 Red Hat Enterprise Linux 上安装 JBoss Web Server 之前,您必须确保您的系统符合以下软件包要求。

注意

Red Hat Enterprise Linux 7 和 Red Hat Enterprise Linux 8 的软件包要求不同。

  • 如果要在 Red Hat Enterprise Linux 8 中使用 OpenSSL,您必须安装与操作系统提供的 openssl 软件包。

    要安装 openssl 软件包,以 root 用户身份输入以下命令:

    Copy to Clipboard Toggle word wrap
    # yum install openssl
  • 如果要在 Red Hat Enterprise Linux 8 中使用 Apache Portable Runtime(APR),您必须安装由操作系统提供的 apr 软件包。

    要安装 apr 软件包,以 root 用户身份运行以下命令:

    Copy to Clipboard Toggle word wrap
    # yum install apr
  • 在安装 tomcat-native 软件包前,您必须先删除 tomcatjss 软件包。tomcatjss 软件包使用底层网络安全服务(NSS)安全模型,而不是 OpenSSL 安全模型。

    要删除 tomcatjss 软件包,以 root 用户身份运行以下命令:

    Copy to Clipboard Toggle word wrap
    # yum remove tomcatjss
注意
  • 在 Red Hat Enterprise Linux 7 中,JBoss Web 服务器使用 opensslapr 软件包,它们由红帽 JBoss Core Services 提供。
  • 在 Red Hat Enterprise Linux 8 中,JBoss Web 服务器使用由操作系统提供的 opensslapr 软件包。
  • 从 Red Hat Enterprise Linux 8 上的存档文件安装 JBoss Web Server 时,您必须安装 opensslapr 软件包(由操作系统提供的)。

2.2. 在 RHEL 上下载和提取 JBoss Web 服务器存档文件

您可以从红帽客户门户网站下载 JBoss Web 服务器归档文件。http://access.redhat.com

先决条件

步骤

  1. 打开浏览器并登录 红帽客户门户
  2. Downloads
  3. 单击产品 下载列表中的 红帽 JBoss Web 服务器
  4. Version 下拉菜单中选择正确的 JBoss Web Server 版本。
  5. 对以下每个文件点 Download,确保为您的系统选择正确的平台和架构:

    • 红帽 JBoss Web 服务器 5.6 应用服务器(jws-5.6.0-application-server.zip)。
    • 用于 RHEL 的 Red Hat JBoss Web Server 5.6 原生组件(jws-5.6.0-application-server-<platform>-<architecture>.zip)。
  6. 将下载的存档文件解压缩到您的安装目录。

    例如:

    Copy to Clipboard Toggle word wrap
    # unzip jws-5.5.0-application-server.zip -d /opt/
    # unzip -o jws-5.5.0-application-server-<platform>-<architecture>.zip -d /opt/

当您提取存档时,会创建 JBoss Web 服务器的最顶层目录。本文档将 JBoss Web 服务器的顶级目录称为 JWS_HOME

2.3. 从存档文件安装时使用 systemd 管理 JBoss Web 服务器

从 Red Hat Enterprise Linux 上的存档文件安装 JBoss Web 服务器时,您可以使用系统守护进程来执行管理任务。将 JBoss Web 服务器与系统守护进程一起使用提供了一种在系统启动时启动 JBoss Web 服务器服务的方法。系统守护进程还提供启动、停止和状态检查功能。

Red Hat Enterprise Linux 8 和 Red Hat Enterprise Linux 7 的默认系统守护进程是 systemd

重要

Red Hat Enterprise Linux 6 不再被支持,随后从文档中被删除。

步骤

  1. 要确定哪个系统守护进程正在运行,请输入以下命令:

    Copy to Clipboard Toggle word wrap
    $ ps -p 1 -o comm=

    如果 systemd 正在运行,则会显示以下输出:

    Copy to Clipboard Toggle word wrap
    systemd
  2. 要为 systemd 设置 JBoss Web 服务器,请以 root 用户身份运行 .postinstall.systemd 脚本:

    Copy to Clipboard Toggle word wrap
    # cd JWS_HOME/tomcat
    # sh .postinstall.systemd
  3. 要使用 systemd 控制 JBoss Web 服务器,您可以以 root 用户身份执行以下步骤:

    • 使用 systemd 在系统引导时启用 JBoss Web 服务器服务:

      Copy to Clipboard Toggle word wrap
      # systemctl enable jws5-tomcat.service
    • 使用 systemd 启动 JBoss Web 服务器:

      Copy to Clipboard Toggle word wrap
      # systemctl start jws5-tomcat.service
      注意

      SECURITY_MANAGER 变量现已弃用,用于基于存档文件安装的 JBoss Web 服务器配置。请考虑以下弃用注释:

      Copy to Clipboard Toggle word wrap
      # SECURITY_MANAGER has been deprecated. To run tomcat under the Java Security Manager use:
        JAVA_OPTS="-Djava.security.manager -Djava.security.policy==\"$CATALINA_BASE/conf/"catalina.policy\"""
    • 使用 systemd 停止 JBoss Web 服务器:

      Copy to Clipboard Toggle word wrap
      # systemctl stop jws5-tomcat.service
    • 使用 systemd 验证 JBoss Web 服务器的状态:

      Copy to Clipboard Toggle word wrap
      # systemctl status jws5-tomcat.service
      注意

      任何用户都可以运行 status 操作。

其他资源

2.4. 用于从命令行管理归档安装的 JBoss Web 服务器配置

当您从 Red Hat Enterprise Linux 上的存档文件安装 JBoss Web 服务器时,您可以直接从命令行启动和停止 JBoss Web 服务器。在命令行中运行 JBoss Web 服务器前,您必须执行以下一系列配置任务:

  • 为 Tomcat 设置 JAVA_HOME 环境变量。
  • 创建 tomcat 用户及其父组。
  • 授予 tomcat 用户对 JBoss Web 服务器的访问权限。
注意

当您使用 系统守护进程而不是从命令行管理 JBoss Web 服务器时,.postinstall.systemd 脚本会自动执行这些配置步骤。

2.4.1. 为 Apache Tomcat 设置 JAVA_HOME 环境变量

首次从命令行运行 JBoss Web 服务器之前,您必须为 Apache Tomcat 设置 JAVA_HOME 环境变量。

步骤

  1. 在命令行中进入 JWS_HOME/tomcat/bin 目录。
  2. 创建名为 setenv.sh 的文件。
  3. setenv.sh 文件中,输入 JAVA_HOME 路径定义。

    例如:

    Copy to Clipboard Toggle word wrap
    export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64

2.4.2. 创建 Tomcat 用户及其父组

首次从命令行运行 JBoss Web 服务器前,您必须创建 tomcat 用户及其父级组,以启用简单且安全的用户管理。

注意

您必须以 root 用户身份执行此流程中的所有步骤。

先决条件

步骤

  1. 在命令行中,前往 JWS_HOME 目录。
  2. 创建 tomcat 用户组:

    Copy to Clipboard Toggle word wrap
    # groupadd -g 53 -r tomcat
  3. tomcat 用户组中创建 tomcat 用户:

    Copy to Clipboard Toggle word wrap
    # useradd -c "tomcat" -u 53 -g tomcat -s /sbin/nologin -r tomcat

2.4.3. 授予 Tomcat 用户对 JBoss Web 服务器的访问权限

首次从命令行运行 JBoss Web 服务器前,您必须将 tomcat 用户访问 JBoss Web 服务器,方法是将 Tomcat 目录的所有权分配给 tomcat 用户。

注意

您必须以 root 用户身份执行此流程中的所有步骤。

步骤

  1. 前往 JWS_HOME 目录。
  2. tomcat 用户分配 Tomcat 目录的所有权:

    Copy to Clipboard Toggle word wrap
    # chown -R tomcat:tomcat tomcat/
  3. 确保 tomcat 用户具有所有父目录的执行权限:

    Copy to Clipboard Toggle word wrap
    # chmod -R u+X tomcat/

验证

  • 验证 tomcat 用户是否为目录的所有者:

    Copy to Clipboard Toggle word wrap
    # ls -l

2.5. 从存档文件安装时从命令行启动 JBoss Web Server

当您从 Red Hat Enterprise Linux 上的存档文件安装 JBoss Web 服务器时,您可以直接从命令行启动 JBoss Web 服务器。

步骤

  • tomcat 用户身份输入以下命令:

    Copy to Clipboard Toggle word wrap
    $ sh JWS_HOME/tomcat/bin/startup.sh

2.6. 从存档文件安装时,从命令行停止 JBoss Web 服务器

当您从 Red Hat Enterprise Linux 上的存档文件安装 JBoss Web 服务器时,您可以直接从命令行停止 JBoss Web 服务器。

先决条件

步骤

  • tomcat 用户身份输入以下命令:

    Copy to Clipboard Toggle word wrap
    $ sh JWS_HOME/tomcat/bin/shutdown.sh

2.7. SELinux policies for JBoss Web Server

您可以使用 Security-Enhanced Linux(SELinux)策略为 JBoss Web 服务器定义访问控制。这些策略是一组规则,它们决定了产品的访问权限。

2.7.1. jws5-tomcat的 SELinux 策略信息

SELinux 安全模型由内核强制,并确保应用程序对文件系统位置和端口等资源具有有限的访问权限。SELinux 策略可确保任何有破坏或不良的进程都受到限制或阻止运行。

JBoss Web 服务器安装中的 jws5-tomcat-selinux 软件包提供了一个 jws5_tomcat 策略。下表包含有关提供的 SELinux 策略的信息。

表 2.1. RPM 和默认 SELinux 策略
Name端口信息策略信息

jws5_tomcat

http_port_t (TCP 端口 8080800 5、80098443)中的四个端口允许 tomcat 进程使用它们

已安装 jws5_tomcat 策略,它会在 Tomcat 执行时为进程设置适当的 SELinux 域。它还将适当的上下文设置为允许 Tomcat 写入以下目录:

  • /var/opt/rh/jws5/lib/tomcat
  • /var/opt/rh/jws5/log/tomcat
  • /var/opt/rh/jws5/cache/tomcat
  • /var/opt/rh/jws5/run/tomcat.pid

其他资源

2.7.2. 为 JBoss Web 服务器归档安装安装 SELinux 策略

在本发行版本中,存档软件包提供 SELinux 策略。jws-5.6.0-application-server- <platform> - &lt;architecture>.zip 归档的 tomcat 文件夹包含 .postinstall.selinux 文件。如果需要,您可以运行. postinstall.selinux 脚本。

步骤

  1. 安装 selinux-policy-devel 软件包:

    Copy to Clipboard Toggle word wrap
    yum install -y selinux-policy-devel
  2. 运行 .postinstall.selinux 脚本:

    Copy to Clipboard Toggle word wrap
    cd <JWS_home>/tomcat/
    sh .postinstall.selinux
  3. 为 JBoss Web 服务器所需端口添加访问权限:

    Copy to Clipboard Toggle word wrap
    semanage port -a -t http_port_t -p tcp <port>
    注意

    JBoss Web 服务器可以访问红帽企业 Linux 系统上的端口 8080 8009、8443 和 8005

    当 JBoss Web 服务器需要额外的端口时,请使用前面的 semanage 命令提供所需权限,并将 < port&gt; 替换为所需端口。

  4. 启动 Tomcat:

    Copy to Clipboard Toggle word wrap
    <JWS_home>/tomcat/bin/startup.sh
  5. 检查运行中进程所需 jws5_tomcat 的上下文:

    Copy to Clipboard Toggle word wrap
    ps -eo pid,user,label,args | grep jws5_tomcat | head -n1
  6. 验证 Tomcat 目录的上下文。例如:

    Copy to Clipboard Toggle word wrap
    ls -lZ <JWS_home>/tomcat/logs/
注意

默认情况下,JBoss Web 服务器提供的 SElinux 策略不活跃,且 Tomcat 进程在 unconfined_java_t 域中运行。这个域不受限制进程。

如果您选择不启用提供的 SELinux 策略,可以采用以下安全措施:

  • 限制 tomcat 用户的文件访问权限,以便 tomcat 用户只能访问 JBoss Web 服务器运行时所需的文件和目录。
  • 不要以 root 用户身份运行 Tomcat。
注意

从存档文件安装 JBoss Web 服务器时,红帽不正式支持使用网络文件共享(NFS)。如果您希望 JBoss Web 服务器安装使用 NFS 挂载的文件系统,您需要确保正确修改 SELinux 策略,以支持这种部署。

第 3 章 从 RPM 软件包在 Red Hat Enterprise Linux 上安装 JBoss Web Server

您可以从归档文件或 RPM 软件包在 Red Hat Enterprise Linux 上安装 JBoss Web Server。如果要从 RPM 软件包安装 JBoss Web Server,则 Red Hat Subscription Management 提供了安装软件包。RPM 安装选项可用于 Red Hat Enterprise Linux 7 和 Red Hat Enterprise Linux 8。

从 RPM 软件包安装 JBoss Web Server 将 Tomcat 部署为服务并将 Tomcat 资源安装到绝对路径中。

3.1. 先决条件

  • 您已使用 YUM 软件包或从压缩的存档安装了一个受支持的 Java Development Kit(JDK)。
  • 您的系统符合 Red Hat Enterprise Linux 软件包要求。

3.1.1. 使用 YUM 软件包管理器安装 JDK

您可以使用 YUM 软件包管理器安装 Java Development Kit(JDK)。有关支持的 JDK 的完整列表,请参阅支持的操作系统和配置

步骤

  1. 将您的 Red Hat Enterprise Linux 系统订阅到适当的频道:

    • OpenJDK:

      • rhel-7-server-rpms
      • rhel-8-server-rpms
    • IBM:

      • rhel-7-server-supplementary-rpms
      • rhel-8-server-supplementary-rpms
    重要

    Red Hat Enterprise Linux 6 不再被支持,随后从文档中被删除。

  2. 以 root 用户身份执行安装 1.8 JDK 的命令:

    Copy to Clipboard Toggle word wrap
    # yum install java-1.8.0-<VENDOR>-devel

    <VENDOR> 替换为 ibmopenjdk

  3. 以 root 用户身份运行以下命令以确保使用正确的 JDK:

    Copy to Clipboard Toggle word wrap
    # alternatives --config java
    Copy to Clipboard Toggle word wrap
    # alternatives --config javac

    这些命令返回可用 JDK 版本列表,其选择版本标有加号(+)符号。如果所选 JDK 不是所需的 JDK,请根据 shell 提示符中的指示更改到所需的 JDK。

    重要

    所有使用 java 和 java c 命令的软件都使用 替代方案 所设置的 JDK。更改 Java 替代方案可能会影响其他软件的运行。

3.1.2. 从压缩的归档安装 JDK

您可以从压缩的存档(如 .zip.tar 文件)安装 Java Development Kit(JDK)。有关支持的 JDK 的完整列表,请参阅支持的操作系统和配置

步骤

  1. 如果 JDK 从供应商的网站(Oracle 或 OpenJDK)下载,请使用供应商提供的安装说明并设置 JAVA_HOME 环境变量。
  2. 如果 JDK 是从压缩的归档中安装的,请为 Tomcat 设置 JAVA_HOME 环境变量:

    1. 在 Tomcat 的 bin 目录中(JWS_HOME/tomcat/bin),创建名为 setenv.sh 的文件。
    2. setenv.sh 文件中,输入 JAVA_HOME 路径定义。例如:

      Copy to Clipboard Toggle word wrap
      $ cat JWS_HOME/tomcat/bin/setenv.sh
      
      export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64

3.1.3. Red Hat Enterprise Linux 软件包要求

在 Red Hat Enterprise Linux 上安装 JBoss Web Server 之前,您必须确保您的系统符合以下软件包要求。

注意

Red Hat Enterprise Linux 7 和 Red Hat Enterprise Linux 8 的软件包要求不同。

  • 如果要在 Red Hat Enterprise Linux 8 中使用 OpenSSL,您必须安装与操作系统提供的 openssl 软件包。

    要安装 openssl 软件包,以 root 用户身份输入以下命令:

    Copy to Clipboard Toggle word wrap
    # yum install openssl
  • 如果要在 Red Hat Enterprise Linux 8 中使用 Apache Portable Runtime(APR),您必须安装由操作系统提供的 apr 软件包。

    要安装 apr 软件包,以 root 用户身份运行以下命令:

    Copy to Clipboard Toggle word wrap
    # yum install apr
  • 在安装 tomcat-native 软件包前,您必须先删除 tomcatjss 软件包。tomcatjss 软件包使用底层网络安全服务(NSS)安全模型,而不是 OpenSSL 安全模型。

    要删除 tomcatjss 软件包,以 root 用户身份运行以下命令:

    Copy to Clipboard Toggle word wrap
    # yum remove tomcatjss
注意
  • 在 Red Hat Enterprise Linux 7 中,JBoss Web 服务器使用 opensslapr 软件包,它们由红帽 JBoss Core Services 提供。
  • 在 Red Hat Enterprise Linux 8 中,JBoss Web 服务器使用由操作系统提供的 opensslapr 软件包。
  • 从 Red Hat Enterprise Linux 8 上的存档文件安装 JBoss Web Server 时,您必须安装 opensslapr 软件包(由操作系统提供的)。

3.2. 将订阅附加到 Red Hat Enterprise Linux

在为 JBoss Web 服务器下载并安装 RPM 软件包前,您必须将您的系统注册到 Red Hat Subscription Management,并订阅相应的内容交付网络(CDN)软件仓库。然后,您可以执行一些验证步骤以确保订阅提供所需的 CDN 软件仓库。

重要

Red Hat Enterprise Linux 6 不再被支持,随后从文档中被删除。

步骤

  1. 登录到 Red Hat Subscription Management 网页。
  2. Systems 标签页。
  3. 点您要为其添加订阅的系统的 Name
  4. Details 选项卡更改为 Subscriptions 选项卡,然后单击 Attach Subscriptions
  5. 选中您要附加的订阅旁边的复选框,然后单击 Attach Subscriptions

验证

  1. 登录 Red Hat Subscriptions 网页。
  2. Subscription Name 列中,点您要选择的订阅。
  3. 在提供产品 下,您需要以下两个内容:

    • JBoss Enterprise Web Server
    • Red Hat JBoss Core Services

其他资源

3.3. 使用 YUM 从 RPM 软件包安装 JBoss Web Server

您可以使用 YUM 软件包管理器从 Red Hat Enterprise Linux 上的 RPM 软件包安装 JBoss Web Server。

步骤

  1. 要为您的操作系统版本订阅 JBoss Web 服务器 CDN 软件仓库,请输入以下命令:

    Copy to Clipboard Toggle word wrap
    # subscription-manager repos --enable <repository>
    注意

    在前面的命令中,将 < repository& gt; 替换为以下值:

    • 在 Red Hat Enterprise Linux 7 上,将 <repository > 替换为 jws-5-for-rhel-7-server-rpmsjb-coreservices-1-for-rhel-7-server-rpms
    • 在 Red Hat Enterprise Linux 8 上,将 <repository > 替换为 jws-5-for-rhel-8-x86_64-rpms
  2. 要安装 JBoss Web 服务器,以 root 用户身份输入以下命令:

    Copy to Clipboard Toggle word wrap
    # yum groupinstall jws5
    重要

    从 RPM 软件包安装 JBoss Web 服务器时,JWS_HOME 文件夹为 /opt/rh/jws5/root/usr/share

注意
  • 您可以单独安装每个软件包及其依赖项,而不是使用 groupinstall 命令。首选方法是使用 groupinstall
  • 安装 JBoss Web 服务器时,需要 Red Hat JBoss Core Services 软件仓库,但 Red Hat Enterprise Linux 8 系统除外。
  • 启用使用 Software Collection 的 NFS 使用的功能。有关这个功能的详情请参考 Packaging Guide:在 NFS 中使用 Software Collections

3.4. 从 RPM 安装时启动 JBoss Web 服务器

从 RPM 软件包安装 JBoss Web 服务器时,您可以使用命令行启动 JBoss Web 服务器。然后,您可以查看 service status 命令的输出来转换 Tomcat 成功运行。

重要

Red Hat Enterprise Linux 6 不再被支持,随后从文档中被删除。

步骤

  • 以 root 用户身份输入以下命令:

    Copy to Clipboard Toggle word wrap
    # systemctl start jws5-tomcat.service
    注意

    这是为 RPM 安装启动 JBoss Web 服务器的唯一支持方法。

验证

  • 要验证 Tomcat 是否正在运行,以任意用户身份输入以下命令:

    Copy to Clipboard Toggle word wrap
    # systemctl status jws5-tomcat.service
    注意

    有关在 RHEL 8 中安装和配置 HTTPD 的详情,请参考 Deploying different Server 类型:设置 Apache HTTP web 服务器

3.5. 从 RPM 安装时停止 JBoss Web 服务器

从 RPM 软件包安装 JBoss Web 服务器时,您可以使用命令行停止 JBoss Web 服务器。然后,您可以查看 service status 命令的输出来转换 Tomcat 成功运行。

重要

Red Hat Enterprise Linux 6 不再被支持,随后从文档中被删除。

步骤

  • 以 root 用户身份输入 followng 命令:

    Copy to Clipboard Toggle word wrap
    # systemctl stop jws5-tomcat.service

验证

  • 要验证 Tomcat 是否不再运行,以任意用户身份运行以下命令:

    Copy to Clipboard Toggle word wrap
    # systemctl status jws5-tomcat.service
注意

有关在 RHEL 8 中安装和配置 HTTPD 的详情,请参考 Deploying different Server 类型:设置 Apache HTTP web 服务器

3.6. 将 JBoss Web Server 服务配置为在系统启动时启动

从 RPM 软件包安装 JBoss Web 服务器时,您可以将 JBoss Web 服务器服务配置为在系统启动时启动。

步骤

  • 使用以下命令:

    Copy to Clipboard Toggle word wrap
    # systemctl enable jws5-tomcat.service
重要

Red Hat Enterprise Linux 6 不再被支持,随后从文档中被删除。

3.7. SELinux policies for JBoss Web Server

您可以使用 Security-Enhanced Linux(SELinux)策略为 JBoss Web 服务器定义访问控制。这些策略是一组规则,它们决定了产品的访问权限。

3.7.1. jws5-tomcat的 SELinux 策略信息

SELinux 安全模型由内核强制,并确保应用程序对文件系统位置和端口等资源具有有限的访问权限。SELinux 策略可确保任何有破坏或不良的进程都受到限制或阻止运行。

JBoss Web 服务器安装中的 jws5-tomcat-selinux 软件包提供了一个 jws5_tomcat 策略。下表包含有关提供的 SELinux 策略的信息。

表 3.1. RPM 和默认 SELinux 策略
Name端口信息策略信息

jws5_tomcat

http_port_t (TCP 端口 8080800 5、80098443)中的四个端口允许 tomcat 进程使用它们

已安装 jws5_tomcat 策略,它会在 Tomcat 执行时为进程设置适当的 SELinux 域。它还将适当的上下文设置为允许 Tomcat 写入以下目录:

  • /var/opt/rh/jws5/lib/tomcat
  • /var/opt/rh/jws5/log/tomcat
  • /var/opt/rh/jws5/cache/tomcat
  • /var/opt/rh/jws5/run/tomcat.pid

其他资源

3.7.2. 为 JBoss Web Server RPM 安装启用 SELinux 策略

当您从 RPM 软件包安装 JBoss Web 服务器时,jws 5-tomcat-selinux 软件包会为 JBoss Web 服务器提供 SELinux 策略。这些软件包包括在 JBoss Web Server 频道中。

步骤

  1. 安装 jws5-tomcat-selinux 软件包:

    Copy to Clipboard Toggle word wrap
    yum install -y jws5-tomcat-selinux

第 4 章 在 Microsoft Windows 上安装 JBoss Web Server

您可以从一组可以从链接 http://access.redhat.com{ Red Hat Customer Portal] 下载的归档文件在 Microsoft Windows 上安装 JBoss Web Server。

4.1. 在 Microsoft Windows 上安装 JDK

在 Microsoft Windows 上安装 JBoss Web Server 之前,您必须首先安装 Java Development Kit(JDK)。

您可以从受支持的供应商网站(如 Oracle 或 IBM)下载并安装 JDK。有关支持的 JDK 列表,请查看 支持的操作系统和配置

注意

这个步骤描述了如何安装 Oracle JDK。

步骤

  1. 要访问 Oracle 网站,请打开浏览器窗口并输入以下 URL:

    http://www.oracle.com/technetwork/java/javase/downloads/index.html

  2. 下载适用于您的操作系统和架构的 Oracle JDK。
  3. 双击下载的文件以开始安装。
  4. 按照安装窗口中的指示进行操作。

其他资源

4.2. 在 Microsoft Windows 上下载和提取 JBoss Web 服务器

您可以从红帽客户门户网站上的 产品下载页面下载 JBoss Web 服务器存档文件。

步骤

  1. 打开浏览器并登录 红帽产品下载页面
  2. 在产品下载 列表中,点 Red Hat JBoss Web Server
  3. 在 Software Downloads 页面中,从 Version 下拉菜单中选择正确的 JBoss Web Server 版本。
  4. 在 Download File 表中,点以下每个文件旁的 Download:

    • 红帽 JBoss Web 服务器 5.6 应用服务器(jws-5.6.0-application-server.zip)。
    • 用于 Windows 服务器的 Red Hat JBoss Web Server 5.6 原生组件(jws-5.6.0-application-server-<platform>-<architecture>.zip)。

      注意

      请确定您选择与系统中平台和架构匹配的正确文件。

  5. 将下载的存档文件解压缩到您的安装目录。

当您提取存档时,会创建 JBoss Web 服务器的最顶层目录。本文档将 JBoss Web 服务器的顶级目录称为 JWS_HOME

4.3. Microsoft Windows 上的 JBoss Web Server 配置

在 Microsoft Windows 上安装 JBoss Web Server 时,您可以通过命令提示符或使用计算机管理工具管理 JBoss Web 服务器。

在 Microsoft Windows 上运行 JBoss Web Server 之前,您必须执行以下一系列配置任务:

4.3.1. 在 Microsoft Windows 上为 JBoss Web 服务器设置环境变量

在 Microsoft Windows 上第一次运行 JBoss Web 服务器前,您必须设置 JAVA_HOMETMPTEMP 环境变量。您还需要更新 PATH 环境变量。

步骤

  1. 登录具有本地管理员权限的帐户。
  2. Control Panel > System
  3. Advanced 标签页。
  4. 单击 环境变量 按钮。
  5. 单击 系统变量 的新建 按钮。
  6. 对于 JAVA_HOMETM P 和 TEMP,请为您的系统输入适当的名称值对。
  7. 要启用 SSL 连接器成功工作,请将 JWS_HOME\bin 添加到服务将要运行的用户的 PATH 环境变量中。

    注意

    服务默认在 SYSTEM 用户下运行。

4.3.2. 在 Microsoft Windows 上安装 Tomcat 服务

在 Microsoft Windows 上第一次运行 JBoss Web 服务器前,您必须安装 Tomcat 服务。

先决条件

步骤

  1. 打开具有管理员特权的命令提示,并进入 Tomcat 版本的 bin 文件夹:

    Copy to Clipboard Toggle word wrap
    cd /D "JWS_HOME\tomcat\bin"
  2. 安装 Tomcat 服务:

    Copy to Clipboard Toggle word wrap
    call service.bat install

4.3.3. 在 Microsoft Windows 上为 JBoss Web Server 服务配置文件夹权限

在 Microsoft Windows 上第一次运行 JBoss Web 服务器前,您必须为 JBoss Web Server 服务配置文件夹权限。配置文件夹权限可确保用于运行 JBoss Web 服务器服务的帐户对 JWS_HOME 文件夹及其所有子文件夹具有完全控制。

步骤

  1. 右键单击 JWS_HOME 文件夹并单击 Properties
  2. 选择 Security 选项卡。
  3. 单击 编辑 按钮。
  4. 点击 Add 按钮。
  5. 在文本框中,输入 LOCAL SERVICE
  6. 选中 LOCAL SERVICE 帐户的 Full Control 复选框。
  7. 确定
  8. 单击 Advanced 按钮。
  9. Advanced Security Settings 对话框中,选择 LOCAL SERVICE 并单击 Edit
  10. 选中 此对象选项中所有带有继承权限的后代替换所有现有可继承权限 旁边的复选框。
  11. 通过所有打开的文件夹属性窗口,单击 确定 以应用设置。

4.4. 在 Microsoft Windows 上启动 JBoss Web Server

在 Microsoft Windows 上安装 JBoss Web Server 时,您可以使用命令提示或计算机管理工具启动 Tomcat 服务。

步骤

  • 执行以下步骤之一:

    • 以管理员身份打开 Command Prompt 并输入以下命令:

      Copy to Clipboard Toggle word wrap
      net start tomcat9
    • Start > Administrative Tools > Services,右键点击 Tomcat9 服务,然后点击 Start
注意

些第三方应用向 Windows 中的系统目录添加库。这些第三方库在查找过程中优先于 Tomcat 库。如果第三方库的名称与 Tomcat 原生库的名称相同,系统将加载第三方库,而不是随 JBoss Web 服务器分发的库。在这种情况下,Tomcat 可能无法启动,Tomcat 不会记录 Windows Event Log 或 Tomcat 日志文件中的任何错误消息。

如果发生此行为,您可以执行以下步骤:

  • 要查看错误,请运行 catalina.bat run 命令。
  • 检查 C:\windows\System32\ 目录和其他 PATH 目录中的内容。
  • 确保动态链接库(DLL)与 JBoss Web 服务器库不冲突。特别是,查找 libeay32.dllssleay32.dll、和 libssl32.dll 库。

4.5. 在 Microsoft Windows 上停止 JBoss Web Server

当您在 Microsoft Windows 上安装 JBoss Web Server 时,您可以使用 Command Prompt 或 Computer 管理工具停止 Tomcat 服务。

步骤

  • 执行以下步骤之一:

    • 以管理员身份打开 Command Prompt 并输入以下命令:

      Copy to Clipboard Toggle word wrap
      net stop tomcat9
    • 进入 Start > Administrative Tools > Services,右键点击 Tomcat9 服务,然后点击 Stop

第 5 章 为 JBoss Web 服务器配置 Hibernate

Hibernate 对象/Relational 映射(ORM)是一个对象关系映射框架,可用于将 JBoss Web 服务器连接到 Java 数据库连接(JDBC)数据源。如果要将应用程序数据存储在相关数据库中,您可以使用 Hibernate ORM 与 JBoss Web 服务器。

5.1. 安装 Hibernate ORM

您可以在 JBoss Web 服务器支持的所有平台上安装 Hibernate ORM。

先决条件

  • 您已将项目配置为使用 JBoss Web 服务器 Maven 存储库。

    注意

    JBoss Web 服务器 Maven 存储库可从 Red Hat Software Downloads 页面下载为 jboss-web-server-5.6.0-maven-repository.zip

步骤

  1. 从 JBoss Web 服务器 Maven 存储库获取 Hibernate JAR 文件。
  2. 将 Hibernate JAR 文件添加到您的部署 WAR 文件。

5.2. 配置 JDBC 连接池

Apache Tomcat 为 JDBC datasources提供默认连接池机制。您可以通过更新 JBoss Web Server 部署的 /META-INF/context.xml 文件中的设置来配置 JDBC 连接池。

步骤

  1. 打开 /META-INF/context.xml 文件。
  2. 修改可供应用使用的 JDBC 连接池。

    例如:

    Copy to Clipboard Toggle word wrap
    <Context>
      <Resource
        name="jdbc/DsWebAppDB"
        auth="Container"
        type="javax.sql.DataSource"
        username="sa"
        password=""
        driverClassName="org.h2.Driver"
        url="jdbc:h2:mem:target/test/db/h2/hibernate"
        maxActive="8"
        maxIdle="4"/>
    </Context>

5.3. 配置 Hibernate 连接属性

您可以通过更新 JBoss Web 服务器部署的 /WEB-INF/classes/META-INF/persistence.xml 文件中的设置,将 Hibernate 配置为使用 Tomcat 池中的 JDBC 连接。

注意

如果要直接使用 Hibernate API,请使用与 hibernate.cfg.xml 文件类似的配置。

步骤

  1. 打开 /WEB-INF/classes/META-INF/persistence.xml 文件。
  2. 配置 Hibernate 以消耗来自 Tomcat 的连接。

    例如:

    Copy to Clipboard Toggle word wrap
    <persistence version="1.0"
      xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
    
      <persistence-unit name="dswebapp">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
          <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" />
          <property name="hibernate.connection.datasource" value="java:comp/env/jdbc/DsWebAppDB"/>
        </properties>
      </persistence-unit>
    </persistence>

5.4. 添加 JDBC 数据源

您可以通过更新 JBoss Web 服务器部署的 /WEB-INF/web.xml 文件中的设置,将 Tomcat 配置为消耗 JDBC 数据源。

步骤

  1. 打开 /WEB-INF/web.xml 文件。
  2. 使用 resource-env-ref 元素配置 JDBC datasources。

    例如:

    Copy to Clipboard Toggle word wrap
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    
     <resource-env-ref>
      <resource-env-ref-name>jdbc/DsWebAppDB</resource-env-ref-name>
      <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
     </resource-env-ref>
    </web-app>
    注意

    前面的示例使用了 jdbc/DsWebAppDB 数据源。

第 6 章 为红帽 JBoss Web 服务器启用 HTTP/2

Hypertext 传输协议(HTTP)是通过互联网在应用程序间传输数据的标准方法,如服务器和浏览器。JBoss Web 服务器支持将 HTTP/2 用于使用传输层安全(TLS)的加密连接,该连接在启用后由 h2 关键字表示。

HTTP/2 通过提供以下改进,改进了 HTTP/1.1:

  • 标头压缩省略了表示的信息,以减少传输的标头的大小。
  • 单个连接中的多个请求和响应使用二进制标记,而不是文本框中断响应消息。
注意

JBoss Web 服务器不支持将 HTTP/2 用于使用传输控制协议(TCP)的未加密连接,在启用时由 h2c 关键字表示。

6.1. 先决条件

  • 在 Red Hat Enterprise Linux 上具有 root 用户访问。
  • 已安装 Red Hat JBoss Web Server 5.0 或更高版本。
  • 已安装 Red Hat Enterprise Linux 提供的 opensslapr 软件包。有关安装 opensslapr 软件包的详情请参考 Red Hat Enterprise Linux 软件包要求

    注意

    这些操作系统原生库也由 jws-5.6.0-application-server- <platform> - &lt;architecture&gt; .zip 提供。

    如果要在 Red Hat Enterprise Linux 8 上运行 JSSE+OpenSSL 或 APR,则必须使用 Tomcat-Native 以确保成功操作。Tomcat-Native 位于原生存档目录中。

  • 您已配置了支持启用了 SSL 的 HTTP/2 协议的连接器。对于 JBoss Web Server 5.6,以下连接器支持 HTTP/2 协议:

    • APR 原生连接器(APR)
    • NIO 与 JSSE + OpenSSL(JSSE)连接器.
    • NIO2 与 JSSE + OpenSSL(JSSE)连接器.

6.2. 为连接器启用 HTTP/2

您可以通过更新 server.xml 配置文件中的设置来为连接器启用 HTTP/2。

步骤

  1. 打开 JWS_HOME/tomcat/conf/server.xml 配置文件。
  2. server.xml 文件中,将 HTTP/2 升级协议添加到连接器中。

    例如:

    Copy to Clipboard Toggle word wrap
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="/KeyStore.jks"
                         certificateKeystorePassword="changeit"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

    server.xml 文件包含 APR 协议的连接器定义示例,并将升级协议设置为 HTTP/2。

    例如:

    Copy to Clipboard Toggle word wrap
    <Connector port="8443"
               protocol="org.apache.coyote.http11.Http11AprProtocol"
               maxThreads="150" SSLEnabled="true" >
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
        <SSLHostConfig>
            <Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
                         certificateFile="conf/localhost-rsa-cert.pem"
                         certificateChainFile="conf/localhost-rsa-chain.pem"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
  3. 要应用配置更新,请以 root 用户身份重启红帽 JBoss Web 服务器。

    • 要使用 systemd 在 Red Hat Enterprise Linux 中重启 JBoss Web Server,请输入以下命令:

      Copy to Clipboard Toggle word wrap
      # systemctl restart jws5-tomcat.service
    • 要使用 boot .sh 在 Red Hat Enterprise Linux 上重启 JBoss Web Server,请输入以下命令:

      Copy to Clipboard Toggle word wrap
      # JWS_HOME/sbin/shudown.sh
      # JWS_HOME/sbin/startup.sh
    • 要在 Microsoft Windows 上重启 JBoss Web Server,请输入以下命令:

      Copy to Clipboard Toggle word wrap
      # net restart tomcat9
重要

Red Hat Enterprise Linux 6 不再被支持,随后从文档中被删除。

6.3. 查看 JBoss Web Server 日志以验证是否启用了 HTTP/2

您可以查看 JBoss Web Server 控制台输出日志,以验证是否启用了 HTTP/2。

步骤

  • 要查看控制台输出日志,请输入以下命令:

    Copy to Clipboard Toggle word wrap
    $ cat JWS_HOME/tomcat/logs/catalina.out | grep 'h2'
    注意

    在前面的命令中,将 JWS_HOME 替换为 JBoss Web 服务器安装的顶层目录。

验证

  • 如果启用了 HTTP/2,命令会生成以下类型的输出结果,表明连接器已配置为支持协商至 [h2]

    Copy to Clipboard Toggle word wrap
    06-Apr-2018 04:49:26.201 INFO [main] org.apache.coyote.http11.AbstractHttp11Protocol.configureUpgradeProtocol The ["https-openssl-apr-8443"] connector has been configured to support negotiation to [h2] via ALPN

6.4. 使用 curl 命令验证是否已启用 HTTP/2

您可以使用 curl 命令行工具验证是否已启用 HTTP/2。

先决条件

  • 为连接器启用了 HTTP/2
  • 您可以使用支持 HTTP/2 的 curl 版本。

    要检查您是否使用支持 HTTP/2 的 curl 版本,请输入以下命令:

    Copy to Clipboard Toggle word wrap
    $ curl -V

    该命令生成以下输出类型:

    Copy to Clipboard Toggle word wrap
    curl 7.55.1 (x86_64-redhat-linux-gnu) ...
    Release-Date: 2017-08-14
    Protocols: dict file ftp ftps gopher http https ...
    Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy Metalink PSL

步骤

  1. 要检查 HTTP/2 协议是否活跃,请输入以下命令:

    Copy to Clipboard Toggle word wrap
    $ curl -I http://<JBoss_Web_Server>:8080/
    注意

    在前面的示例中,将 &lt ;JBoss_Web_Server > 替换为修改连接器的 URI,如 example.com。端口号取决于您的配置。

验证

  • 如果 HTTP/2 协议是活跃的,curl 命令会生成以下输出:

    Copy to Clipboard Toggle word wrap
    HTTP/2 200

    否则,如果 HTTP/2 协议不活跃,curl 命令会生成以下输出:

    Copy to Clipboard Toggle word wrap
    HTTP/1.1 200

6.5. 其他资源(或后续步骤)

第 7 章 在 Red Hat JBoss Web 服务器中使用密码 vault

JBoss Web 服务器密码 vault(名为 tomcat-vault )是 Apache Tomcat 的 PicketLink vault 扩展。您可以使用密码 vault 屏蔽密码和其他敏感字符串,并在加密的 Java 密钥存储中存储敏感信息。使用密码库时,您可以停止将明文密码存储在 Tomcat 配置文件中。Tomcat 可以使用密码 vault 从密钥存储搜索密码和其他敏感字符串。

重要

有关在密码 vault 中使用 CRYPT 功能的更多信息,请参阅使用 CRYPT

注意

联邦信息处理标准(FIPS)140-2 不支持 tomcat-vault 提供的基于密码的加密。如果要在 JBoss Web 服务器主机上使用基于密码的加密,您必须确定禁用 FIPS。如果您在启用了 FIPS 模式时试图使用 tomcat-vault,则会显示以下出错信息:安全 Vault 无法用于 FIPS 模式

7.1. 从存档文件进行密码 vault 安装

从存档文件安装 JBoss Web 服务器时,当您安装 jws-5.6.0-application-server.zip 文件时,密码 vault 会自动安装。密码库位于 JWS_HOME/tomcat/lib/tomcat-vault.jar 文件中。

7.2. 使用 YUM 软件包管理器在 RHEL 上安装密码库

当您从 RPM 软件包在 Red Hat Enterprise Linux 上安装 JBoss Web 服务器时,您可以使用 YUM 软件包管理器安装密码 vault。

步骤

  • 以 root 用户身份输入以下命令:

    Copy to Clipboard Toggle word wrap
    yum install jws5-tomcat-vault

7.3. 在 JBoss Web 服务器中启用密码库

您可以通过在 catalina.properties 文件中添加 configuration 属性来启用密码 vault。

先决条件

步骤

  1. 如果已经运行,则停止 Tomcat。
  2. 打开 JWS_HOME/tomcat/conf/catalina.properties 文件。
  3. catalina.properties 文件中,输入以下行:

    Copy to Clipboard Toggle word wrap
    org.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.vault.util.PropertySourceVault
    注意

    在前面的示例中,将 JWS_HOME 替换为 JBoss Web 服务器安装的路径。本例中显示的路径使用正斜杠(/)作为目录分隔符。

7.4. 在 JBoss Web 服务器中创建 Java 密钥存储

在使用密码 vault 前,您必须首先使用 keytool -genseckey 命令创建 Java 密钥存储。

步骤

  • 使用以下命令:

    Copy to Clipboard Toggle word wrap
    $ keytool -genseckey -keystore JWS_HOME/tomcat/vault.keystore -alias my_vault  -storetype jceks -keyalg AES -keysize 128 -storepass <vault_password> -keypass <vault_password> -validity 730
    注意

    在前面的示例中,将参数设置替换为适合您的环境的值。

    有关每个参数的更多信息,请使用 keytool -genseckey -help 命令。

重要

密码 vault 目前不支持 PKCS12 密钥存储类型。密码 vault 仅支持 JCEKS 密钥存储类型。

根据您使用的密钥存储算法,您必须指定以下 keysize 值之一:

  • 如果您使用 AES,请指定 -keysize 128
  • 如果您使用的是 DES,请指定 -keysize 56
  • 如果您使用 DESede,请指定 -keysize 168

7.5. Apache Tomcat 的 vault 初始化

您可以使用 tomcat-vault.sh 脚本为 Apache Tomcat 初始化密码 vault。tomcat-vault.sh 脚本支持以下一种机制来初始化密码库:

7.5.1. 交互式地初始化 Apache Tomcat 的密码库

您可以以互动方式为 Tomcat 初始化密码 vault。在这种情况下,tomcat-vault.sh 脚本会提示您在脚本运行时输入值。

步骤

  1. 运行 tomcat-vault.sh 脚本并根据屏幕提示进行操作。

    例如:

    Copy to Clipboard Toggle word wrap
    # JWS_HOME/tomcat/bin/tomcat-vault.sh
    
    WARNING JBOSS_HOME may be pointing to a different installation - unpredictable results may occur.
    
    =========================================================================
    
      JBoss Vault
    
      JBOSS_HOME: JWS_HOME/tomcat
    
      JAVA: java
    
    =========================================================================
    
    **********************************
    ****  JBoss Vault  ***************
    **********************************
    Please enter a Digit::
    0: Start Interactive Session
    1: Remove Interactive Session
    2: Exit
    
    0
    
    Starting an interactive session
    Enter directory to store encrypted files: JWS_HOME/tomcat/
    Enter Keystore URL: JWS_HOME/tomcat/vault.keystore
    Enter Keystore password: <vault_password>
    Enter Keystore password again: <vault_password>
    Values match
    Enter 8 character salt: 1234abcd
    Enter iteration count as a number (Eg: 44): 120
    Enter Keystore Alias: my_vault
    Initializing Vault
    Jun 16, 2018 10:24:27 AM org.apache.tomcat.vault.security.vault.PicketBoxSecurityVault init
    INFO: PBOX000361: Default Security Vault Implementation Initialized and Ready
    Vault Configuration in tomcat properties file:
    ********************************************
    ...
    KEYSTORE_URL=JWS_HOME/tomcat/vault.keystore
    KEYSTORE_PASSWORD=MASK-3CuP21KMHn7G6iH/A3YpM/
    KEYSTORE_ALIAS=my_vault
    SALT=1234abcd
    ITERATION_COUNT=120
    ENC_FILE_DIR=JWS_HOME/tomcat/
    ...
    ********************************************
    Vault is initialized and ready for use
    Handshake with Vault complete
    Please enter a Digit::
    0: Store a secured attribute
    1: Check whether a secured attribute exists
    2: Exit
    
    2
    注意

    在前面的示例中,将指定的设置替换为适合您的环境的值。

  2. 请注意 Tomcat 属性文件的输出。在将 Tomcat 配置为使用密码 vault 时,您需要此信息。

7.5.2. 使用非互动设置为 Apache Tomcat 初始化密码库

您可以使用非交互式设置为 Tomcat 初始化密码 vault。在这种情况下,您必须在运行脚本时为 tomcat-vault.sh 脚本提供所需的输入。

步骤

  • 运行 tomcat-vault.sh 脚本并提供所需参数。

    例如:

    Copy to Clipboard Toggle word wrap
    $ JWS_HOME/tomcat/bin/tomcat-vault.sh \
     --keystore JWS_HOME/tomcat/vault.keystore \
     --keystore-password <vault_password> \
     --alias my_vault \
     --enc-dir JWS_HOME/tomcat/ \
     --iteration 120 \
     --salt 1234abcd \
     --generate-config JWS_HOME/tomcat/conf/vault.properties

    在前面的示例中,将指定的设置替换为适合您的环境的值。

注意

当您指定 -g、--generate-config 选项时,tomcat-vault.sh 脚本也会创建一个包含指定属性的 vault.properties 文件。

7.6. 将 Tomcat 配置为使用密码库

您可以通过更新 vault.properties 文件中的配置设置,将 Apache Tomcat 配置为使用密码 vault。

先决条件

步骤

  1. 进入 JWS_HOME/tomcat/conf/ 目录。
  2. 创建名为 vault.properties 的文件。
  3. vault.properties 文件中,输入您在为 Tomcat 初始化密码 vault 时指定的 vault 配置属性。

    例如:

    Copy to Clipboard Toggle word wrap
    KEYSTORE_URL=JWS_HOME/tomcat/vault.keystore
    KEYSTORE_PASSWORD=MASK-3CuP21KMHn7G6iH/A3YpM/
    KEYSTORE_ALIAS=my_vault
    SALT=1234abcd
    ITERATION_COUNT=120
    ENC_FILE_DIR=JWS_HOME/tomcat/
注意

前面的示例基于 使用交互式设置在 Apache Tomcat 初始化密码 vault 中的示例 vault 设置

对于 KEYSTORE_PASSWORD 设置,请确保使用初始化密码 vault 时生成的掩码值。

7.7. 外部密码库配置

您可以在 JWS_HOME/tomcat/conf/ 目录外存储 vault.properties 文件。如果您已经设置了 CATALINA_BASE/conf/ 目录,您可以将 vault.properties 文件存储在 CATALINA_BASE/conf/ 目录中。

有关设置 CATALINA_BASE 目录的更多信息,请参阅在 Apache Tomcat 网站上 运行 Apache Tomcat 9.0 Servlet/JSP Container 中的"高级配置 - 多 Tomcat 实例"部分。

注意

CATALINA_BASE 的默认位置是 JWS_HOME/tomcat/。这也被称为 CATALINA_HOME 目录。

7.8. 在密码库中存储敏感字符串

您可以使用 tomcat-vault.sh 脚本将敏感字符串存储在密码库中。您可以以互动方式或非互动模式运行 tomcat-vault.sh 脚本。

当您在密码库中添加敏感字符串时,您必须为字符串指定名称。在这种情况下,字符串的名称称为 属性名称,字符串本身则称为安全属性。

步骤

  • 要在非互动模式中使用 tomcat-vault.sh 脚本,请输入以下命令:

    Copy to Clipboard Toggle word wrap
    $ JWS_HOME/tomcat/bin/tomcat-vault.sh --keystore JWS_HOME/tomcat/vault.keystore --keystore-password <vault_password> --alias my_vault --enc-dir JWS_HOME/tomcat --iteration 120 --salt 1234abcd --vault-block my_block --attribute manager_password --sec-attr P@SSW0#D
注意

前面的示例基于 使用交互式设置在 Apache Tomcat 初始化密码 vault 中的示例 vault 设置。前面的示例存储敏感字符串 P@SSW0#D,属性名称为 manager_password

运行 tomcat-vault.sh 脚本时,您可以选择指定一个 vault 块来存储密码。如果没有指定块,tomcat-vault.sh 脚本会自动创建块。前面的示例指定了一个名为 my_block 的 vault 块。

7.9. 在 Tomcat 配置中使用存储的敏感字符串

当您在密码 vault 中存储敏感字符串时,您可以引用属性名称,而不是在配置文件中指定实际字符串。通过将受保护的字符串替换为字符串的属性名称,您可以确保 Tomcat 配置文件仅包含对密码的引用。在这种情况下,实际密码只存储在密码库中。

步骤

  1. 打开包含敏感字符串的 Tomcat 配置文件。
  2. 将敏感字符串替换为字符串的属性名称,并确保以以下格式输入属性名称 :${VAULT::block_name::attribute_name::::}

    例如:

    考虑安全字符串的以下示例文件条目: P@SSW0#D

    Copy to Clipboard Toggle word wrap
    <user username="manager" password=*"P@SSW0#D"* roles="manager-gui"/>

    如果安全字符串 P@SSW0#D 具有属性名称 manager_password,请将受保护的字符串替换为以下值:

    Copy to Clipboard Toggle word wrap
    <user username="manager" password=*"${VAULT::my_block::manager_password::}"* roles="manager-gui"/>
注意

上例基于 在密码 vault 中存储敏感字符串的示例 设置。前面的示例将敏感字符串 P@SSW0#D 替换为属性名称 manager_password,它位于名为 my_block 的块中。

第 8 章 配置 SSI 过滤器

您可以配置基于过滤器的服务器 Side Includes(SSI)支持 JBoss Web 服务器,以便在现有的 HTML 页面中启用动态生成内容。

注意

如果您尝试像之前版本一样配置 SSI 过滤器,则 SSI 指令不起作用。

步骤

  1. 打开 conf/web.xml 文件。
  2. web.xml 文件中,取消对以下块的注释:

    Copy to Clipboard Toggle word wrap
        <mime-mapping>
            <extension>shtml</extension>
            <mime-type>text/x-server-parsed-html</mime-type>
        </mime-mapping>

第 9 章 为 Red Hat JBoss Web 服务器配置 FIPS

在 Red Hat Enterprise Linux 8 主机上安装 JBoss Web 服务器时,您可以将 JBoss Web 服务器配置为符合联邦信息处理标准(FIPS)。当您在 Red Hat Enterprise Linux 主机上启用 FIPS 时,这可让 JBoss Web 服务器自动以 FIPS 模式运行。

注意

FIPS 不支持 JBoss Web 服务器的 tomcat-vault 组件提供的基于密码的加密功能。如果要在 JBoss Web 服务器主机上使用基于密码的加密,您必须确定禁用 FIPS。有关基于密码的加密和 tomcat-vault 的更多信息,请参阅红帽 JBoss Web 服务器的 Vault

9.1. FIPS 简介

联邦信息处理标准(FIPS)为提高计算机系统和网络之间的安全性和互操作性提供了指南和要求。FIPS 140-2 和 140-3 系列适用于硬件和软件级别的加密模块。美国国家标准和技术研究院实施 加密模块验证程序,其中包含流程中和批准的加密模块的可搜索列表。

Red Hat Enterprise Linux 提供了一个集成框架,可以在整个系统基础上启用 FIPS 140-2 合规性。当在 FIPS 模式下操作时,使用加密库的软件包会根据全局策略进行自我配置。

9.2. 在 RHEL 8 中为 JBoss Web 服务器配置 FIPS

您可以在系统安装过程中在 Red Hat Enterprise Linux 8 主机上启用 FIPS 合规性。另外,您可以在系统安装完成后将系统切换到 FIPS 模式。

步骤

验证

  • 使用以下命令:

    Copy to Clipboard Toggle word wrap
    fips-mode-setup --check

    如果启用了 FIPS,它会输出以下输出:

    Copy to Clipboard Toggle word wrap
    FIPS mode is enabled.

附录 A. Java IPv4 和 IPv6 属性

您可以使用 Java 属性来配置 IPv4 和 IPv6 地址。然后,您可以将这些属性导出到 Tomcat,并使用地址值来指定 Tomcat 绑定。

A.1. Java IPv4 和 IPv6 属性概述

Java 提供了两个属性,可用于配置 IPv4 和 IPv6 地址:

java.net.preferIPv4Stack(默认: false)
如果 IPv6 可用,则底层原生套接字默认为 IPv6 套接字。这个套接字可让应用程序连接和接受 IPv4 和 IPv6 主机的连接。如果应用程序只使用 IPv4 套接字,请将此属性设置为 true。但是,使用 IPv4 套接字的应用程序只能与只有 IPv6 的主机通信。
java.net.preferIPv6Addresses(默认为 false)
如果主机既有 IPv4 和 IPv6 地址,且 IPv6 都可用,则默认行为是通过 IPv6 使用 IPv4 地址。这样可实现向后兼容。如果应用程序依赖于 IPv4 地址表示(如 192.168.1.1),请将此属性设置为 true 以更改首选项,并在可能的情况下通过 IPv4 使用 IPv6 地址。

A.2. 将 Java IPv4 和 IPv6 属性导出到 Tomcat

您可以通过在 JWS_HOME/tomcat/bin/setenv.* 文件中设置 CATALINA_ OPTS 将 Java IPv4 和 IPv6 属性导出到 Tomcat。在 Red Hat Enterprise Linux 中,setenv 文件有一个 .sh 扩展。在 Microsoft Windows 上,setenv 文件有一个 .bat 扩展。

步骤

  1. 如果 JWS_HOME/tomcat/bin/setenv.* 文件不存在,请创建该文件。

    注意

    如果您使用 Red Hat Enterprise Linux,请创建一个 setenv.sh 文件。如果您使用 Microsoft Windows,请创建一个 setenv.bat 文件。

  2. 要将 Java IPv4 和 IPv6 属性导出到 Tomcat,请执行以下步骤:

    • 如果使用 Red Hat Enterprise Linux,请输入以下命令:

      Copy to Clipboard Toggle word wrap
      export "CATALINA_OPTS=-Djava.net.preferIPv4Stack=YOUR_VALUE -Djava.net.preferIPv6Addresses=YOUR_VALUE"
    • 如果使用 Microsoft Windows,请输入以下命令:

      Copy to Clipboard Toggle word wrap
      set "CATALINA_OPTS=-Djava.net.preferIPv4Stack=YOUR_VALUE -Djava.net.preferIPv6Addresses=YOUR_VALUE"

A.3. 配置 Tomcat 绑定

您可以通过指定 IPv6 地址,在 JWS_HOME/tomcat/conf/server.xml 文件中配置 Tomcat 绑定。

步骤

  1. 打开 JWS_HOME/tomcat/conf/server.xml 文件。
  2. 要指定 Tomcat 绑定地址,请输入以下详情:

    Copy to Clipboard Toggle word wrap
    <Server ... address="TOMCAT_BINDING_ADDRESS">
  3. 要指定 HTTP 连接器地址,请输入以下详情:

    Copy to Clipboard Toggle word wrap
    <Connector protocol="HTTP/1.1" ... address="HTTP_CONNECTOR_ADDRESS">
  4. 要指定 AJP 连接器地址,请输入以下详细信息:

    Copy to Clipboard Toggle word wrap
    <Connector protocol="AJP/1.3" ... address="AJP_CONNECTOR_ADDRESS">
注意

确保将 TOMCAT_BINDING_ADDRESSHTTP_CONNECTOR_ADDRESSAJP_CONNECTOR_ADDRESS 替换为正确的 IPv6 地址。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat, Inc.