安装指南
安装和配置 Red Hat JBoss Web Server 6.1
摘要
提供有关 Red Hat JBoss Web Server 文档的反馈
要报告错误或改进文档,请登录您的红帽 JIRA 帐户并提交问题。如果您没有红帽 JIRA 帐户,系统会提示您创建一个帐户。
流程
- 单击以下链接 来创建 ticket。
- 在 Summary 中输入有关此问题的简单描述。
- 在描述中提供问题或增强功能的详细描述。请包括有问题的文档 URL。
- 点 Create 创建并将问题路由到适当的文档团队。
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO 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 Server 组件
JBoss Web 服务器包括 Apache Tomcat Servlet 容器、Tomcat 原生库、Tomcat vault、mod_cluster
库、Apache Portable Runtime (APR)和 OpenSSL 等组件。
- Apache Tomcat
- Apache Tomcat 是一个基于 Java Servlet 规范的 servlet 容器。JBoss Web 服务器 6.x 包含 Apache Tomcat 10.1。
- 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_jk
和mod_proxy
,请参阅 HTTP Connectors 和 Load Balancing 指南。 - Apache Portable Runtime
- Apache Portable Runtime (APR)为 HTTP 连接器提供基于 OpenSSL 的 TLS 实现。
- OpenSSL
- OpenSSL 是一个实现安全套接字层(SSL)和传输层安全(TLS)协议的软件库。OpenSSL 包括一个基本的加密库。
有关 Red Hat JBoss Web Server 支持组件的完整列表,请查看 JBoss Web Server 组件详情页。
1.2. 红帽提供的 Apache Tomcat 发行版本之间的区别
Red Hat JBoss Web Server 和 Red Hat Enterprise Linux (RHEL)都提供 Apache Tomcat 的独立发行版。但是,与 Apache Tomcat 的 RHEL 发行版相比,JBoss Web 服务器通过包含集成和认证的其他组件和功能集提供了不同的优势。JBoss Web 服务器还提供更频繁的软件和安全更新。
RHEL 在 RHEL 7、RHEL 8.8 或更高版本以及 RHEL 9.2 或更高版本上提供 Apache Tomcat 发布。
对于 RHEL 8.0 到 8.7 到 8.7 到 9.1,RHEL 平台订阅不提供 Apache Tomcat 的发布。在这些操作系统版本中,JBoss Web Server 是红帽提供的唯一 Apache Tomcat 发行版,作为 Middleware Runtimes 订阅的一部分提供。
Apache Tomcat 版本
考虑 JBoss Web 服务器和 RHEL 提供的 Apache Tomcat 发行版本的以下版本信息:
- RHEL 提供的 Apache Tomcat 版本
-
RHEL 7
tomcat
软件包基于 Apache Tomcat 7 的社区版本。 -
RHEL 8.x 和 RHEL 9.x
tomcat
软件包基于 Apache Tomcat 9 的社区版本。tomcat
软件包提供 RHEL 8.8 或更高版本,且只提供 RHEL 9.2 或更高版本。
-
RHEL 7
- JBoss Web 服务器提供的 Apache Tomcat 版本
- JBoss Web Server 3.1 提供了一组 Apache Tomcat 7 和 Apache Tomcat 8,以及集成和经认证的其他组件和功能。但是,红帽不再完全支持或维护 JBoss Web Server 3.1,这目前处于延长生命周期支持(ELS)阶段 2,并计划于 2028 年 12 月 2028 年的生命周期结束日期。
- JBoss Web Server 5.x 提供 Apache Tomcat 9 发行版,红帽完全测试并支持一组集成和经认证的其他组件和功能。红帽计划于 2024 年 7 月 31 日结束对 JBoss Web Server 5.x 的完全支持。红帽将在 2025 年 7 月 31 日前提供维护支持,并附带延长生命周期支持(ELS)阶段 1,并计划于 2027 年 7 月结束其生命周期日期。
- JBoss Web Server 6.x 提供 Apache Tomcat 10.1 的发布,红帽完全测试并支持一组集成和经认证的其他组件和功能。
有关产品生命周期和可用支持级别的更多信息,请参阅 生命周期阶段。有关 Apache Tomcat 版本的更多信息,请参阅 红帽支持的 Apache Tomcat 版本。
红帽不提供对 Apache Tomcat 社区发行版本的支持。
JBoss Web 服务器和 Apache Tomcat 的 RHEL 发行版之间的区别
考虑 JBoss Web 服务器和 Apache Tomcat 的 RHEL 发行版之间的以下区别:
JBoss Web Server | Apache Tomcat 的 RHEL 发行版 |
---|---|
支持从 RHEL 版本 8 和 9 上的存档文件或 RPM 软件包安装。 注意 红帽不提供 RHEL 7 上的 JBoss Web Server 6.x 发行版。 | 仅支持在 RHEL 7、RHEL 8.8 和 RHEL 9.2 或更高版本上从 RPM 软件包安装。 |
支持从受支持的 Windows 服务器平台上的存档文件进行安装。 | Not applicable |
为开发人员提供了创建和部署后端 Web 应用和大型网站(可在安全稳定的环境中提供来自 Apache HTTP 服务器代理的客户端请求)的支持。 | 提供管理员支持在 RHEL 系统上部署和运行 Apache Tomcat 实例。 |
提供完全经过测试并支持的 Apache Tomcat 发行版本,包括以下集成和经认证的附加功能集合:
| 仅提供基于社区版本的 Apache Tomcat 的标准发行版,以及不常常的软件更新。 |
在 | Not applicable |
另外,在 | Not applicable |
JBoss Web 服务器和 RHEL 文档集之间的区别
JBoss Web Server 文档集比 tomcat
软件包的 RHEL 文档更全面、更全面:
-
JBoss Web 服务器包括
Red Hat JBoss Web Server 6.1.x Documentation
归档文件,其中包含 Apache Tomcat 10.1 和 Tomcat Vault 的 API 文档。您可以从红帽客户门户网站下载此存档文件。https://access.redhat.com/jbossnetwork/restricted/listSoftware.html?product=webserver&downloadType=distributions JBoss Web Server 产品文档页面 提供了有关以下所有类型的用例的信息:
- 从支持的操作系统上的存档文件或 RPM 软件包执行 JBoss Web 服务器的标准安装。
-
配置 JBoss Web 服务器以用于 Apache HTTP 服务器连接器和负载平衡器,如
mod_jk
和mod_proxy_cluster
。 - 使用 Red Hat Ansible 认证的内容集合启用 JBoss Web 服务器的自动安装。
- 在 Red Hat OpenShift 环境中使用 JBoss Web Server。
- 安装并使用 JBoss Web Server Operator for OpenShift.
- 配置 JBoss Web 服务器以支持 HTTP/2 协议、Tomcat Vault 和 FIPS 合规性等功能。
1.3. JBoss Web 服务器操作系统和配置
Red Hat JBoss Web Server 支持 Red Hat Enterprise Linux 和 Windows Server 操作系统的不同版本。
1.4. JBoss Web Server 安装方法
您可以使用每个平台可用的归档安装文件在受支持的 Red Hat Enterprise Linux 和 Windows Server 系统上安装 Red Hat JBoss Web Server。您还可以使用 RPM 软件包在受支持的 Red Hat Enterprise Linux 系统上安装 JBoss Web 服务器。
归档安装文件中包含以下组件。这些组件是 JBoss Web 服务器安装的核心部分。
jws-6.1.0-application-server.zip
- Apache Tomcat 10.1
-
mod_cluster
- Tomcat vault
jws-6.1.0-optional-native-components-<platform>-<architecture>.zip
- 平台相关工具
1.5. JBoss Web Server 组件文档捆绑包
JBoss Web 服务器包括附加文档捆绑包,其中包含每个组件的原始供应商文档。您可以从红帽客户门户网站下载本文档 bundle, jws-6.1.0-docs.zip
。http://access.redhat.com
文档捆绑包包含以下组件的额外文档:
- Apache Tomcat
- Tomcat 原生库
- Tomcat vault
第 2 章 从存档文件在 Red Hat Enterprise Linux 上安装 JBoss Web Server
您可以从存档文件或 RPM 软件包在 Red Hat Enterprise Linux (RHEL)上安装 JBoss Web 服务器。如果要从存档文件安装 JBoss Web 服务器,您可以 从红帽客户门户下载 并提取 JBoss Web Server 归档文件。
从存档文件安装 JBoss Web 服务器时,您可以以不同的方式管理该产品。例如,您可以在系统启动时使用系统守护进程,或者从命令行管理 JBoss Web 服务器。
您可以在 RHEL 版本 8 和 9 上安装 JBoss Web 服务器。红帽不提供用于 RHEL 7 系统的 JBoss Web Server 6.x 发行版。
2.1. 先决条件
- 已使用 DNF 软件包管理器或从压缩存档安装了受支持的 Java Development Kit (JDK)。
- 您的系统符合 Red Hat Enterprise Linux 软件包要求。
2.1.1. 使用 DNF 软件包管理器安装 JDK
您可以使用 DNF 软件包管理器安装 Java Development Kit (JDK)。有关支持的 JDK 的完整列表,请参阅 JBoss Web 服务器操作系统和配置。
这个步骤描述了如何安装 OpenJDK。如果要安装 Oracle JDK,请参阅 Oracle 文档以了解更多信息。
流程
将 Red Hat Enterprise Linux 系统订阅到适当的频道:
- rhel-8-server-rpms
- rhel-9-server-rpms
要安装支持的 JDK 版本,请以 root 用户身份输入以下命令:
dnf install java-<version>-openjdk-headless
# dnf install java-<version>-openjdk-headless
Copy to Clipboard Copied! 在前面的命令中,将
java- <version>
替换为java-11
,java-17
, 或java-21
。注意JBoss Web Server 6.x 不支持 OpenJDK 8。
要确保使用了正确的 JDK,请以 root 用户身份运行以下命令:
alternatives --config java
# alternatives --config java
Copy to Clipboard Copied! 前面的命令返回带有加号(
+
)符号标记的可用 JDK 版本列表。如果所选的 JDK 不是所需的 JDK,根据 shell 提示符中的指示更改为所需的 JDK。重要所有使用
java
命令的软件都使用由alternatives
设定的 JDK。更改的 Java 替代方案可能会影响其他软件的运行。
2.1.2. 从压缩的归档安装 JDK
您可以从压缩的归档(如 .zip
或 .tar
文件)安装 Java Development Kit (JDK)。有关支持的 JDK 的完整列表,请参阅 JBoss Web 服务器操作系统和配置。
流程
-
如果您从厂商的网站(Oracle 或 OpenJDK)下载 JDK,请使用厂商提供的安装说明并设置
JAVA_HOME
环境变量。 如果您从压缩存档安装 JDK,请为 Tomcat 设置
JAVA_HOME
环境变量:-
在 Tomcat 的
bin
目录中(JWS_HOME/tomcat/bin
),创建一个名为setenv.sh
的文件。 在
setenv.sh
文件中,输入JAVA_HOME
路径定义。例如:cat JWS_HOME/tomcat/bin/setenv.sh export JAVA_HOME=/usr/lib/jvm/jre-<version>-openjdk.x86_64
$ cat JWS_HOME/tomcat/bin/setenv.sh export JAVA_HOME=/usr/lib/jvm/jre-<version>-openjdk.x86_64
Copy to Clipboard Copied! 在前面的示例中,将
jre- <version&
gt; 替换为jre-11
、jre-17
或jre-21
。
-
在 Tomcat 的
2.1.3. Red Hat Enterprise Linux 软件包要求
在 Red Hat Enterprise Linux 上安装 JBoss Web Server 前,您必须确保您的系统符合以下软件包要求。
在 Red Hat Enterprise Linux 8 或 9 上,如果要使用 OpenSSL 或 Apache Portable Runtime (APR),您必须安装
openssl
和 Red Hat Enterprise Linux 提供的apr
软件包。要安装
openssl
软件包,请以 root 用户身份输入以下命令:dnf install openssl
# dnf install openssl
Copy to Clipboard Copied! 要安装
apr
软件包,请以 root 用户身份输入以下命令:dnf install apr
# dnf install apr
Copy to Clipboard Copied!
在安装
tomcat-native
软件包前,您必须删除tomcatjss
软件包。tomcatjss
软件包使用底层网络安全服务(NSS)安全模型而不是 OpenSSL 安全模型。要删除
tomcatjss
软件包,请以 root 用户身份运行以下命令:dnf remove tomcatjss
# dnf remove tomcatjss
Copy to Clipboard Copied!
2.2. 为 JBoss Web 服务器的基本发行版本下载和提取存档文件
基本版本是 特定产品版本的初始版本(如 6.1.0
是版本 6.1 的基础版本)。您可以从红帽客户门户网站上的 软件下载页面 下载 JBoss Web Server 归档文件。
先决条件
- 已使用 DNF 软件包管理器 或从压缩存档 安装受支持的 Java Development Kit (JDK)。
- 您的系统符合 Red Hat Enterprise Linux 软件包要求。
步骤
- 打开浏览器并登录 红帽客户门户。
- 点 Downloads 选项卡。
- 从 Product Downloads 列表中,选择 Red Hat JBoss Web Server。
- 在 Software Downloads 页面上,从 Version 下拉列表中选择适当的 JBoss Web Server 版本。
点
Red Hat JBoss Web Server 6.1.0 Application Server
文件旁边的 Download。下载的文件在本地主机上命名为
jws-6.1.0-application-server.zip
。如果您还想下载适用于您的操作系统的原生 JBoss Web Server 组件,请点击
Red Hat JBoss Web Server 6.1.0 Optional Native Components for < platform> < architecture>
; 文件旁边的 Download。在这种情况下,请确保选择与系统的平台和架构匹配的正确文件。下载的文件名为
jws-6.1.0-optional-native-components- <platform>- <architecture > .zip
(例如:jws-6.1.0-optional-native-components-RHEL8-x86_64.zip
)。将下载的存档文件提取到您的安装目录中。
例如:
unzip jws-6.1.0-application-server.zip -d /opt/ unzip -o jws-6.1.0-optional-native-compoonents-<platform>-<architecture>.zip -d /opt/
# unzip jws-6.1.0-application-server.zip -d /opt/ # unzip -o jws-6.1.0-optional-native-compoonents-<platform>-<architecture>.zip -d /opt/
Copy to Clipboard Copied!
JBoss Web 服务器的顶级目录是在提取存档时创建的。本文档将 JBoss Web Server 的顶级目录称为 JWS_HOME
。
2.3. 为 JBoss Web 服务器补丁更新下载和提取存档文件
如果产品补丁更新可用于适当的 JBoss Web 服务器版本,您可以为最新的累积补丁安装存档文件。您可以从红帽客户门户网站上的 软件下载页面 下载 JBoss Web Server 归档文件。
您不能使用 累积补丁更新来安装产品版本的基本版本(X.X.0)。例如,安装 6.1.2 补丁将安装 6.1.1 和 6.1.2 版本,但无法安装基本的 6.1.0 版本。
服务包的发布是累计的。通过下载最新的服务包版本,您还可以自动安装任何以前的服务包版本。
流程
- 打开浏览器并登录 红帽客户门户。
- 点 Downloads 选项卡。
- 从 Product Downloads 列表中,选择 Red Hat JBoss Web Server。
- 在 Software Downloads 页面上,从 Version 下拉列表中选择适当的 JBoss Web Server 版本。
- 点 Patches 选项卡。
单击最新
Red Hat JBoss Web Server 6.1 Update XX Application Server
文件旁边的 Download。下载的文件在本地主机上命名为
jws-6.1.x-application-server.zip
。如果您还想下载适用于您的操作系统的原生 JBoss Web 服务器组件,请点击最新
Red Hat JBoss Web Server 6.1 Update XX Optional Native Components for < platform> < architecture>
; 文件旁边的 Download。在这种情况下,请确保选择与系统的平台和架构匹配的正确文件。下载的文件名为
jws-6.1.x-optional-native-components- <platform>-<architecture > .zip
(如jws-6.1.x-optional-native-components-RHEL8-x86_64.zip
)。将下载的存档文件提取到您的安装目录中。
例如:
unzip jws-6.1.x-application-server.zip -d /opt/ unzip -o jws-6.1.x-optional-native-compoonents-<platform>-<architecture>.zip -d /opt/
# unzip jws-6.1.x-application-server.zip -d /opt/ # unzip -o jws-6.1.x-optional-native-compoonents-<platform>-<architecture>.zip -d /opt/
Copy to Clipboard Copied!
2.4. 从存档文件安装时使用 systemd
管理 JBoss Web 服务器
当您从 Red Hat Enterprise Linux 上的存档文件安装 JBoss Web 服务器时,您可以使用系统守护进程执行管理任务。将 JBoss Web Server 与系统守护进程一起使用提供了一种在系统启动时启动 JBoss Web Server 服务的方法。系统守护进程还提供 start、stop 和 status 检查功能。
在 Red Hat Enterprise Linux 版本 8 和 9 中,默认的系统守护进程是 systemd
。
先决条件
步骤
要确定哪个系统守护进程正在运行,请输入以下命令:
ps -p 1 -o comm=
$ ps -p 1 -o comm=
Copy to Clipboard Copied! 如果
systemd
正在运行,则会显示以下输出:systemd
systemd
Copy to Clipboard Copied! 要为
systemd
设置 JBoss Web 服务器,以 root 用户身份运行.postinstall.systemd
脚本:cd JWS_HOME/tomcat sh .postinstall.systemd
# cd JWS_HOME/tomcat # sh .postinstall.systemd
Copy to Clipboard Copied! 要使用
systemd
控制 JBoss Web 服务器,您可以以 root 用户身份执行以下步骤:使用
systemd
使 JBoss Web Server 服务在系统启动时启动:systemctl enable jws6-tomcat.service
# systemctl enable jws6-tomcat.service
Copy to Clipboard Copied! 使用
systemd
启动 JBoss Web 服务器:systemctl start jws6-tomcat.service
# systemctl start jws6-tomcat.service
Copy to Clipboard Copied! 注意现在,基于归档文件安装的 JBoss Web 服务器配置已弃用
SECURITY_MANAGER
变量。请考虑以下弃用注释:SECURITY_MANAGER has been deprecated. To run tomcat under the Java Security Manager use:
# 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\"""
Copy to Clipboard Copied! 使用
systemd
停止 JBoss Web 服务器:systemctl stop jws6-tomcat.service
# systemctl stop jws6-tomcat.service
Copy to Clipboard Copied! 使用
systemd
验证 JBoss Web 服务器的状态:systemctl status jws6-tomcat.service
# systemctl status jws6-tomcat.service
Copy to Clipboard Copied! 注意任何用户都可以运行
status
操作。
2.5. 用于从命令行管理归档安装的 JBoss Web 服务器配置
当您从 Red Hat Enterprise Linux 上的存档文件安装 JBoss Web Server 时,您可以直接从命令行启动和停止 JBoss Web Server。在从命令行运行 JBoss Web 服务器前,您必须执行以下一系列配置任务:
-
为 Tomcat 设置
JAVA_HOME
环境变量。 -
创建
tomcat
用户及其父组。 -
授予
tomcat
用户对 JBoss Web Server 的访问权限。
当您使用 系统守护进程而不是从命令行管理 JBoss Web 服务器时,.postinstall.systemd
脚本会自动执行这些配置步骤。
2.5.1. 为 Apache Tomcat 设置 JAVA_HOME 环境变量
首次从命令行运行 JBoss Web Server 之前,您必须为 Apache Tomcat 设置 JAVA_HOME
环境变量。
先决条件
步骤
-
在命令行中,进入
JWS_HOME/tomcat/bin
目录。 -
创建名为
setenv.sh
的文件。 在
setenv.sh
文件中,输入JAVA_HOME
路径定义。例如:
export JAVA_HOME=/usr/lib/jvm/jre-11-openjdk.x86_64
export JAVA_HOME=/usr/lib/jvm/jre-11-openjdk.x86_64
Copy to Clipboard Copied!
2.5.2. 创建 Tomcat 用户和组
首次从命令行运行 JBoss Web 服务器前,您必须创建一个 tomcat
用户帐户和用户组,以启用简单和安全的用户管理。在 Red Hat Enterprise Linux 中,tomcat
用户以及 tomcat
组的用户标识器(UID)和组标识符(GID)均保留值为 53
。
您必须以 root 用户身份执行此流程中的所有步骤。
步骤
-
在命令行中,进入
JWS_HOME
目录。 创建
tomcat
用户组:groupadd -g 53 -r tomcat
# groupadd -g 53 -r tomcat
Copy to Clipboard Copied! 在
tomcat
用户组中创建tomcat
用户:useradd -c "tomcat" -u 53 -g tomcat -s /sbin/nologin -r tomcat
# useradd -c "tomcat" -u 53 -g tomcat -s /sbin/nologin -r tomcat
Copy to Clipboard Copied!
前面的命令同时将 UID 和 GID 设置为 53
。如果您随后想要更改 UID 和 GID 值,请参阅 更改 tomcat
用户和组的 UID 和 GID。
2.5.3. 授予 Tomcat 用户访问 JBoss Web 服务器
首次从命令行运行 JBoss Web 服务器前,您必须通过将 Tomcat 目录的所有权分配给 tomcat
用户来授予 tomcat
用户访问 JBoss Web 服务器。
您必须以 root 用户身份执行此流程中的所有步骤。
先决条件
步骤
-
进入
JWS_HOME
目录。 将 Tomcat 目录的所有权分配给
tomcat
用户:chown -R tomcat:tomcat tomcat/
# chown -R tomcat:tomcat tomcat/
Copy to Clipboard Copied! 确保
tomcat
用户具有所有父目录的执行权限:chmod -R u+X tomcat/
# chmod -R u+X tomcat/
Copy to Clipboard Copied!
验证
验证
tomcat
用户是目录的所有者:ls -l
# ls -l
Copy to Clipboard Copied!
2.6. 从存档文件安装时,从命令行启动 JBoss Web Server
当您从 Red Hat Enterprise Linux 上的存档文件安装 JBoss Web Server 时,您可以直接从命令行启动 JBoss Web Server。
步骤
以
tomcat
用户身份输入以下命令:sh JWS_HOME/tomcat/bin/startup.sh
$ sh JWS_HOME/tomcat/bin/startup.sh
Copy to Clipboard Copied!
2.7. 从存档文件安装时,从命令行停止 JBoss Web Server
当您从 Red Hat Enterprise Linux 上的存档文件安装 JBoss Web Server 时,您可以直接从命令行停止 JBoss Web Server。
先决条件
步骤
以
tomcat
用户身份输入以下命令:sh JWS_HOME/tomcat/bin/shutdown.sh
$ sh JWS_HOME/tomcat/bin/shutdown.sh
Copy to Clipboard Copied!
2.8. JBoss Web 服务器的 SELinux 策略
您可以使用 Security-Enhanced Linux (SELinux)策略来定义 JBoss Web 服务器的访问控制。这些策略是一组规则,用于决定产品的访问权限。
2.8.1. jws6-tomcat
的 SELinux 策略信息
SELinux 安全模型由内核实施,并确保应用程序对资源(如文件系统位置和端口)具有有限的访问权限。SELinux 策略可确保任何被破坏或配置不当的进程都被限制或阻止运行。
JBoss Web 服务器安装中的 jws6-tomcat-selinux
软件包提供了一个 jws6_tomcat
策略。下表包含有关提供的 SELinux 策略的信息。
Name | 端口信息 | 策略信息 |
---|---|---|
|
|
已安装
|
2.8.2. 为 JBoss Web Server 归档安装安装 SELinux 策略
在这个发行版本中,归档软件包提供 SELinux 策略。jws-6.1.0-application-server- <platform>- <architecture>.zip
归档的 tomcat
文件夹包括 .postinstall.selinux
文件。如果需要,您可以运行 .postinstall.selinux
脚本。
步骤
安装
selinux-policy-devel
软件包:dnf install -y selinux-policy-devel
dnf install -y selinux-policy-devel
Copy to Clipboard Copied! 运行
.postinstall.selinux
脚本:cd <JWS_home>/tomcat/ sh .postinstall.selinux
cd <JWS_home>/tomcat/ sh .postinstall.selinux
Copy to Clipboard Copied! 为 JBoss Web 服务器所需的端口添加访问权限:
semanage port -a -t http_port_t -p tcp <port>
semanage port -a -t http_port_t -p tcp <port>
Copy to Clipboard Copied! 注意JBoss Web 服务器有权访问 Red Hat Enterprise Linux 系统上的端口
8080
、8009
、88443
和8005
。当 JBoss Web 服务器需要额外的端口时,请使用前面的
semanage
命令提供所需的权限,并将 <port>
; 替换为所需的端口。启动 Tomcat :
<JWS_home>/tomcat/bin/startup.sh
<JWS_home>/tomcat/bin/startup.sh
Copy to Clipboard Copied! 检查希望
jws6_tomcat
的正在运行的进程的上下文:ps -eo pid,user,label,args | grep jws6_tomcat | head -n1
ps -eo pid,user,label,args | grep jws6_tomcat | head -n1
Copy to Clipboard Copied! 验证 Tomcat 目录的上下文。例如:
ls -lZ <JWS_home>/tomcat/logs/
ls -lZ <JWS_home>/tomcat/logs/
Copy to Clipboard Copied!
默认情况下,JBoss Web 服务器提供的 SElinux 策略不是活跃的,Tomcat 进程在 unconfined_java_t
域中运行。这个域不会限制进程。
如果您选择不启用提供的 SELinux 策略,您可以执行以下操作:
-
限制
tomcat
用户的文件访问权限,以便tomcat
用户只能访问 JBoss Web 服务器运行时所需的文件和目录。 - 不要以 root 用户身份运行 Tomcat。
从存档文件安装 JBoss Web 服务器时,红帽不正式支持使用网络文件共享(NFS)。如果您希望 JBoss Web 服务器安装使用 NFS 挂载的文件系统,您需要确保正确修改 SELinux 策略来支持此类部署。
2.9. 更改 tomcat
用户和组的 UID 和 GID
在 Red Hat Enterprise Linux 中,tomcat
用户以及 tomcat
组的用户标识器(UID)和组标识符(GID)均保留值为 53
。根据您的设置要求,您可以将 tomcat
用户和组的 UID 和 GID 更改为其他值。
为了避免 SELinux 冲突,请使用小于 500 的 UID 和 GID 值。如果 SELinux 设置为 enforcing
模式,则大于 500 的 UID 和 GID 值可能会导致意外问题。
先决条件
流程
-
如果 JBoss Web Server 已在运行,以
tomcat
用户身份停止 JBoss Web Server。如需更多信息,请参阅从 存档文件安装时从命令行停止 JBoss Web Server。 要查看
tomcat
用户和组的当前 UID 和 GID,请以 root 用户身份输入以下命令:id tomcat
id tomcat
Copy to Clipboard Copied! 前面的命令显示用户帐户和组详细信息。例如:
uid=53(tomcat) gid=53(tomcat) groups=53(tomcat)
uid=53(tomcat) gid=53(tomcat) groups=53(tomcat)
Copy to Clipboard Copied! 要为
tomcat
组分配一个新的 GID,请以 root 用户身份输入以下命令:groupmod -g <new_gid> tomcat
groupmod -g <new_gid> tomcat
Copy to Clipboard Copied! 例如:
groupmod -g 410 tomcat
groupmod -g 410 tomcat
Copy to Clipboard Copied! 要为
tomcat
用户分配一个新的 UID,请以 root 用户身份输入以下命令:usermod -u <new_uid> -g <new_gid> tomcat
usermod -u <new_uid> -g <new_gid> tomcat
Copy to Clipboard Copied! 例如:
usermod -u 401 -g 410 tomcat
usermod -u 401 -g 410 tomcat
Copy to Clipboard Copied! 要将文件和目录权限重新分配给新 UID,请以 root 用户身份输入以下命令:
find / -not -path '/proc*' -uid <original_uid> | perl -e '$ug = @ARGV[0]; foreach $fn (<STDIN>) { chomp($fn);$m = (stat($fn))[2];chown($ug,-1,$fn);chmod($m,$fn)}' <new_uid>
# find / -not -path '/proc*' -uid <original_uid> | perl -e '$ug = @ARGV[0]; foreach $fn (<STDIN>) { chomp($fn);$m = (stat($fn))[2];chown($ug,-1,$fn);chmod($m,$fn)}' <new_uid>
Copy to Clipboard Copied! 在前面的命令中,将 < original_uid> 替换为旧的 UID,并将 & lt;new_uid& gt; 替换为新 UID。例如,要将文件和目录权限从 UID
53
重新分配给 UID401
,请输入以下命令:find / -not -path '/proc*' -uid 53 | perl -e '$ug = @ARGV[0]; foreach $fn (<STDIN>) { chomp($fn);$m = (stat($fn))[2];chown($ug,-1,$fn);chmod($m,$fn)}' 401
# find / -not -path '/proc*' -uid 53 | perl -e '$ug = @ARGV[0]; foreach $fn (<STDIN>) { chomp($fn);$m = (stat($fn))[2];chown($ug,-1,$fn);chmod($m,$fn)}' 401
Copy to Clipboard Copied! 要将文件和目录权限重新分配给新的 GID,请以 root 用户身份输入以下命令:
find / -not -path '/proc*' -gid <original_gid> | perl -e '$ug = @ARGV[0]; foreach $fn (<STDIN>) { chomp($fn);$m = (stat($fn))[2];chown(-1,$ug,$fn);chmod($m,$fn)}' <new_gid>
# find / -not -path '/proc*' -gid <original_gid> | perl -e '$ug = @ARGV[0]; foreach $fn (<STDIN>) { chomp($fn);$m = (stat($fn))[2];chown(-1,$ug,$fn);chmod($m,$fn)}' <new_gid>
Copy to Clipboard Copied! 在前面的命令中,将 < original_gid> 替换为旧的 GID,并将 < ;new_gid& gt; 替换为新的 GID。例如,要将文件和目录权限从 GID
53
重新分配给 GID410
,请输入以下命令:find / -not -path '/proc*' -gid 53 | perl -e '$ug = @ARGV[0]; foreach $fn (<STDIN>) { chomp($fn);$m = (stat($fn))[2];chown(-1,$ug,$fn);chmod($m,$fn)}' 410
# find / -not -path '/proc*' -gid 53 | perl -e '$ug = @ARGV[0]; foreach $fn (<STDIN>) { chomp($fn);$m = (stat($fn))[2];chown(-1,$ug,$fn);chmod($m,$fn)}' 410
Copy to Clipboard Copied! -
要以
tomcat
用户身份重启 JBoss Web Server,请参阅 从存档文件 安装时从命令行启动 JBoss Web Server。
第 3 章 从 RPM 软件包在 Red Hat Enterprise Linux 上安装 JBoss Web Server
您可以从存档文件或 RPM 软件包在 Red Hat Enterprise Linux (RHEL)上安装 JBoss Web 服务器。如果要从 RPM 软件包安装 JBoss Web 服务器,则 Red Hat Subscription Management 提供了安装软件包。
从 RPM 软件包安装 JBoss Web 服务器将 Tomcat 部署为服务,并将 Tomcat 资源安装到绝对路径中。
您可以在 RHEL 版本 8 和 9 上安装 JBoss Web 服务器。红帽不提供用于 RHEL 7 系统的 JBoss Web Server 6.x 发行版。
3.1. 先决条件
- 已使用 DNF 软件包或从压缩存档安装受支持的 Java Development Kit (JDK)。
- 您的系统符合 Red Hat Enterprise Linux 软件包要求。
3.1.1. 使用 DNF 软件包管理器安装 JDK
您可以使用 DNF 软件包管理器安装 Java Development Kit (JDK)。有关支持的 JDK 的完整列表,请参阅 JBoss Web 服务器操作系统和配置。
这个步骤描述了如何安装 OpenJDK。如果要安装 Oracle JDK,请参阅 Oracle 文档以了解更多信息。
流程
将 Red Hat Enterprise Linux 系统订阅到适当的频道:
- rhel-8-server-rpms
- rhel-9-server-rpms
要安装支持的 JDK 版本,请以 root 用户身份输入以下命令:
dnf install java-<version>-openjdk-headless
# dnf install java-<version>-openjdk-headless
Copy to Clipboard Copied! 在前面的命令中,将
java- <version>
替换为java-11
,java-17
, 或java-21
。注意JBoss Web Server 6.x 不支持 OpenJDK 8。
要确保使用了正确的 JDK,请以 root 用户身份运行以下命令:
alternatives --config java
# alternatives --config java
Copy to Clipboard Copied! 前面的命令返回带有加号(
+
)符号标记的可用 JDK 版本列表。如果所选的 JDK 不是所需的 JDK,根据 shell 提示符中的指示更改为所需的 JDK。重要所有使用
java
命令的软件都使用由alternatives
设定的 JDK。更改的 Java 替代方案可能会影响其他软件的运行。
3.1.2. 从压缩的归档安装 JDK
您可以从压缩的归档(如 .zip
或 .tar
文件)安装 Java Development Kit (JDK)。有关支持的 JDK 的完整列表,请参阅 JBoss Web 服务器操作系统和配置。
流程
-
如果您从厂商的网站(Oracle 或 OpenJDK)下载 JDK,请使用厂商提供的安装说明并设置
JAVA_HOME
环境变量。 如果您从压缩存档安装 JDK,请为 Tomcat 设置
JAVA_HOME
环境变量:-
在 Tomcat 的
bin
目录中(JWS_HOME/tomcat/bin
),创建一个名为setenv.sh
的文件。 在
setenv.sh
文件中,输入JAVA_HOME
路径定义。例如:cat JWS_HOME/tomcat/bin/setenv.sh export JAVA_HOME=/usr/lib/jvm/jre-<version>-openjdk.x86_64
$ cat JWS_HOME/tomcat/bin/setenv.sh export JAVA_HOME=/usr/lib/jvm/jre-<version>-openjdk.x86_64
Copy to Clipboard Copied! 在前面的示例中,将
jre- <version&
gt; 替换为jre-11
、jre-17
或jre-21
。
-
在 Tomcat 的
3.1.3. Red Hat Enterprise Linux 软件包要求
在 Red Hat Enterprise Linux 上安装 JBoss Web Server 前,您必须确保您的系统符合以下软件包要求。
在 Red Hat Enterprise Linux 8 或 9 上,如果要使用 OpenSSL 或 Apache Portable Runtime (APR),您必须安装
openssl
和 Red Hat Enterprise Linux 提供的apr
软件包。要安装
openssl
软件包,请以 root 用户身份输入以下命令:dnf install openssl
# dnf install openssl
Copy to Clipboard Copied! 要安装
apr
软件包,请以 root 用户身份输入以下命令:dnf install apr
# dnf install apr
Copy to Clipboard Copied!
在安装
tomcat-native
软件包前,您必须删除tomcatjss
软件包。tomcatjss
软件包使用底层网络安全服务(NSS)安全模型而不是 OpenSSL 安全模型。要删除
tomcatjss
软件包,请以 root 用户身份运行以下命令:dnf remove tomcatjss
# dnf remove tomcatjss
Copy to Clipboard Copied!
3.2. 将订阅附加到 Red Hat Enterprise Linux
在为 JBoss Web 服务器下载并安装 RPM 软件包前,您必须使用 Red Hat Subscription Management 注册您的系统,并订阅相应的 Content Delivery Network (CDN)存储库。之后,您可以执行一些验证步骤,以确保订阅提供所需的 CDN 存储库。
流程
- 登录到 Red Hat Subscription Management 网页。
- 点 Systems 选项卡。
-
点击您要添加订阅的系统的
Name
。 -
从 Details 选项卡更改为 Subscriptions 选项卡,然后单击
Attach Subscriptions
。 -
选中您要附加的订阅旁边的复选框,然后单击
Attach Subscriptions
。
验证
- 登录到 Red Hat Subscriptions 网页。
-
在
Subscription Name
列中,点击您要选择的订阅。 在 Provided 下,您需要以下任一操作:
-
JBoss Enterprise Web Server
-
Red Hat JBoss Core Services
-
3.3. 使用 DNF 从 RPM 软件包安装 JBoss Web Server
您可以使用 DNF 软件包管理器从 Red Hat Enterprise Linux 上的 RPM 软件包安装 JBoss Web Server。
先决条件
流程
要为您的操作系统版本订阅 JBoss Web Server CDN 软件仓库,请输入以下命令:
subscription-manager repos --enable <repository>
# subscription-manager repos --enable <repository>
Copy to Clipboard Copied! 注意在前面的命令中,将 <
repository&
gt; 替换为以下值:
-
在 Red Hat Enterprise Linux 8 中,将
<repository
> 替换为jws-6-for-rhel-8-x86_64-rpms
。 -
在 Red Hat Enterprise Linux 9 上,将
<repository
> 替换为jws-6-for-rhel-9-x86_64-rpms
。
-
在 Red Hat Enterprise Linux 8 中,将
要安装 JBoss Web 服务器,请以 root 用户身份输入以下命令:
dnf groupinstall jws6
# dnf groupinstall jws6
Copy to Clipboard Copied! 重要从 RPM 软件包安装 JBoss Web 服务器时,
JWS_HOME
文件夹是/opt/rh/jws6/root/usr/share
。
-
您可以单独安装每个软件包及其依赖项,而不是使用
groupinstall
命令。首选方法是使用groupinstall
。 - 启用使用 Software Collection 启用 NFS 使用的功能。有关此功能的更多信息,请参阅 打包指南:通过 NFS 使用 Software Collections。
3.4. 从 RPM 安装时启动 JBoss Web Server
从 RPM 软件包安装 JBoss Web 服务器时,您可以使用命令行启动 JBoss Web Server。之后,您可以查看 service status
命令的输出,以验证 Tomcat 是否已成功运行。
流程
以 root 用户身份输入以下命令:
systemctl start jws6-tomcat.service
# systemctl start jws6-tomcat.service
Copy to Clipboard Copied! 注意这是为 RPM 安装启动 JBoss Web Server 的唯一方法。
验证
要验证 Tomcat 是否正在运行,请以任何用户身份输入以下命令:
systemctl status jws6-tomcat.service
# systemctl status jws6-tomcat.service
Copy to Clipboard Copied!
3.5. 从 RPM 安装时停止 JBoss Web 服务器
从 RPM 软件包安装 JBoss Web 服务器时,您可以使用命令行停止 JBoss Web 服务器。之后,您可以查看 service status
命令的输出,以验证 Tomcat 是否已成功运行。
流程
以 root 用户身份输入 followng 命令:
systemctl stop jws6-tomcat.service
# systemctl stop jws6-tomcat.service
Copy to Clipboard Copied!
验证
要验证 Tomcat 不再运行,请以任意用户身份输入以下命令:
systemctl status jws6-tomcat.service
# systemctl status jws6-tomcat.service
Copy to Clipboard Copied!
3.6. 将 JBoss Web Server 服务配置为在系统启动时启动
从 RPM 软件包安装 JBoss Web 服务器时,您可以将 JBoss Web Server 服务配置为在系统启动时启动。
步骤
输入以下命令:
systemctl enable jws6-tomcat.service
# systemctl enable jws6-tomcat.service
Copy to Clipboard Copied!
3.7. JBoss Web 服务器的 SELinux 策略
您可以使用 Security-Enhanced Linux (SELinux)策略来定义 JBoss Web 服务器的访问控制。这些策略是一组规则,用于决定产品的访问权限。
3.7.1. jws6-tomcat
的 SELinux 策略信息
SELinux 安全模型由内核实施,并确保应用程序对资源(如文件系统位置和端口)具有有限的访问权限。SELinux 策略可确保任何被破坏或配置不当的进程都被限制或阻止运行。
JBoss Web 服务器安装中的 jws6-tomcat-selinux
软件包提供了一个 jws6_tomcat
策略。下表包含有关提供的 SELinux 策略的信息。
Name | 端口信息 | 策略信息 |
---|---|---|
|
|
已安装
|
3.7.2. 为 JBoss Web Server RPM 安装启用 SELinux 策略
从 RPM 软件包安装 JBoss Web 服务器时,jws6-tomcat-selinux
软件包为 JBoss Web Server 提供 SELinux 策略。这些软件包包括在 JBoss Web Server 频道中。
流程
安装
jws6-tomcat-selinux
软件包:dnf install -y jws6-tomcat-selinux
dnf install -y jws6-tomcat-selinux
Copy to Clipboard Copied!
第 4 章 在 Windows Server 上安装 JBoss Web Server
您可以从一组 可从红帽客户门户 下载的存档文件在 Windows Server 上安装 JBoss Web Server。
4.1. 在 Windows Server 上安装 JDK
在 Windows Server 上安装 JBoss Web Server 前,您必须首先安装 Java Development Kit (JDK)。
您可以从受支持的供应商网站(如 Oracle)下载并安装 JDK。有关支持的 JDK 列表,请参阅支持的操作系统和配置。
这个步骤描述了如何安装 Oracle JDK。
步骤
要访问 Oracle 网站,请打开一个浏览器窗口并输入以下 URL:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
- 为您的操作系统和架构下载 Oracle JDK。
- 双击下载的文件来开始安装。
- 按照安装窗口中的指示进行。
4.2. 为 JBoss Web 服务器的基本发行版本下载和提取存档文件
基本版本是 特定产品版本的初始版本(如 6.1.0
是版本 6.1 的基础版本)。您可以从红帽客户门户网站上的 软件下载页面 下载 JBoss Web Server 归档文件。
流程
- 打开浏览器并登录 红帽客户门户。
- 点 Downloads 选项卡。
- 从 Product Downloads 列表中,选择 Red Hat JBoss Web Server。
- 在 Software Downloads 页面上,从 Version 下拉列表中选择适当的 JBoss Web Server 版本。
点
Red Hat JBoss Web Server 6.1.0 Application Server
文件旁边的 Download。下载的文件在本地主机上命名为
jws-6.1.0-application-server.zip
。如果您还想下载适用于您的操作系统的原生 JBoss Web Server 组件,请单击
Red Hat JBoss Web Server 6.1.0 Optional Native Components for Windows x86_64
文件旁边的 Download。下载的文件名为
jws-6.1.0-optional-native-components-win6-x86_64.zip
。- 将下载的存档文件提取到您的安装文件夹。
JBoss Web 服务器的顶级文件夹在提取存档时创建。本文档将 JBoss Web Server 的顶级文件夹称为 JWS_HOME
。
4.3. 为 JBoss Web 服务器补丁更新下载和提取存档文件
如果产品补丁更新可用于适当的 JBoss Web 服务器版本,您可以为最新的累积补丁安装存档文件。您可以从红帽客户门户网站上的 软件下载页面 下载 JBoss Web Server 归档文件。
您不能使用 累积补丁更新来安装产品版本的基本版本(X.X.0)。例如,安装 6.1.2 补丁将安装 6.1.1 和 6.1.2 版本,但无法安装基本的 6.1.0 版本。
服务包的发布是累计的。通过下载最新的服务包版本,您还可以自动安装任何以前的服务包版本。
先决条件
流程
- 打开浏览器并登录 红帽客户门户。
- 点 Downloads 选项卡。
- 从 Product Downloads 列表中,选择 Red Hat JBoss Web Server。
- 在 Software Downloads 页面上,从 Version 下拉列表中选择适当的 JBoss Web Server 版本。
- 点 Patches 选项卡。
单击最新
Red Hat JBoss Web Server 6.1 Update XX Application Server
文件旁边的 Download。下载的文件在本地主机上命名为
jws-6.1.x-application-server.zip
。如果您还想下载适用于您的操作系统的原生 JBoss Web 服务器组件,请单击最新
Red Hat JBoss Web Server 6.1 Update XX Optional Native Components for Windows x86_64
文件旁边的 Download。下载的文件名为
jws-6.1.x-optional-native-components-win6-x86_64.zip
。- 将下载的存档文件提取到您的安装文件夹。
4.4. Windows Server 上的 JBoss Web 服务器配置
当您在 Windows Server 上安装 JBoss Web Server 时,您可以从命令提示符或使用计算机管理工具管理 JBoss Web Server。
在 Windows Server 上运行 JBoss Web Server 前,您必须执行以下一系列配置任务:
4.4.1. 在 Windows 服务器上为 JBoss Web Server 设置环境变量
在 Windows 服务器上第一次运行 JBoss Web 服务器前,您必须设置 JAVA_HOME
、TMP
和 TEMP
环境变量。您还必须更新 PATH
环境变量。
先决条件
步骤
- 登录到具有本地管理员权限的帐户。
- 点 Control Panel > System。
- 单击 Advanced 选项卡。
- 点 Environment Variables 按钮。
- 单击 System Variables 的新 按钮。
-
对于
JAVA_HOME
、TMP
和TEMP
,请为您的系统输入适当的 name-value 对。 要启用 SSL Connector 正常工作,请将
JWS_HOME\bin
添加到服务将在其中运行的用户的PATH
环境变量中。注意默认情况下,服务在
SYSTEM
用户下运行。
4.4.2. 在 Windows 服务器中安装 Tomcat 服务
在 Windows Server 上第一次运行 JBoss Web Server 之前,您必须安装 Tomcat 服务。
步骤
打开具有管理员权限的命令提示符,并进入 Tomcat 版本的
bin
文件夹:cd /D "JWS_HOME\tomcat\bin"
cd /D "JWS_HOME\tomcat\bin"
Copy to Clipboard Copied! 安装 Tomcat 服务:
call service.bat install
call service.bat install
Copy to Clipboard Copied!
4.4.3. 为 Windows Server 上的 JBoss Web Server 服务配置文件夹权限
在 Windows Server 上第一次运行 JBoss Web Server 之前,您必须为 JBoss Web Server 服务配置文件夹权限。配置文件夹权限可确保用于运行 JBoss Web Server 服务的帐户对 JWS_HOME
文件夹及其所有子文件夹具有完全控制。
先决条件
步骤
-
右键单击
JWS_HOME
文件夹,再单击 属性。 - 选择 Security 选项卡。
- 点 Edit 按钮。
- 点击 Add 按钮。
-
在文本框中,输入
LOCAL SERVICE
。 -
为
LOCAL SERVICE
帐户选择 Full Control 复选框。 - 点确定。
- 单击 Advanced 按钮。
-
在 Advanced Security Settings 对话框中,选择
LOCAL SERVICE
并点 Change permissions。 - 选择 替换为此对象选项中可继承权限条目替换所有子对象权限条目 旁边的复选框。
- 在所有打开文件夹属性窗口点 OK 以应用设置。
4.5. 在 Windows Server 上启动 JBoss Web Server
当您在 Windows Server 上安装 JBoss Web Server 时,您可以使用命令提示符或计算机管理工具启动 Tomcat 服务。
先决条件
步骤
执行以下步骤:
以管理员身份打开命令提示,并输入以下命令:
net start tomcat10
net start tomcat10
Copy to Clipboard Copied! -
点 Start > Administrative Tools > Services,右键点击
Tomcat10
服务,然后点 Start。
有些第三方应用程序将库添加到 Windows Server 中的系统目录中。这些第三方库在查找过程中优先于 Tomcat 库。如果第三方库的名称与 Tomcat 原生库的名称相同,系统会加载第三方库,而不是与 JBoss Web 服务器分发的库。在这种情况下,Tomcat 可能无法成功启动,Tomcat 不会记录 Windows Server Event Log 或 Tomcat 日志文件中的任何错误消息。
如果发生此行为,您可以执行以下步骤:
-
要查看错误,请运行
catalina.bat run
命令。 -
检查
C:\windows\System32\
目录和其他PATH
目录的内容。 -
确保动态链接库(DLL)与 JBoss Web Server 库不冲突。特别是,查找
libeay32.dll
、ssleay32.dll
、libssl32.dll
库。
4.6. 在 Windows Server 上停止 JBoss Web Server
当您在 Windows Server 上安装 JBoss Web Server 时,您可以使用命令提示符或计算机管理工具停止 Tomcat 服务。
先决条件
步骤
执行以下步骤:
以管理员身份打开命令提示,并输入以下命令:
net stop tomcat10
net stop tomcat10
Copy to Clipboard Copied! -
进入 Start > Administrative Tools > Services,右键点击
Tomcat10
服务,然后点 Stop。
第 5 章 为 Red Hat JBoss Web Server 启用 HTTP/2
Hypertext 传输协议(HTTP)是通过互联网在应用程序(如服务器和浏览器)之间传输数据的标准方法。JBoss Web 服务器支持使用 HTTP/2 进行使用传输层安全(TLS)的加密连接,该连接在启用时由 h2
关键字表示。
通过提供以下改进,在 HTTP/1.1 上改进了 HTTP/2:
- 标头压缩省略了表示的信息,以减少传输的标头大小。
- 单个连接上的多个请求和响应使用二进制帧而不是文本图解响应消息。
JBoss Web 服务器不支持将 HTTP/2 用于使用传输控制协议(TCP)的未加密连接,该连接在启用时由 h2c
关键字表示。
5.1. 先决条件
- 在 Red Hat Enterprise Linux 上具有 root 用户访问权限。
- 已安装 Red Hat JBoss Web Server 5.0 或更高版本。
您已安装了 Red Hat Enterprise Linux 提供的
openssl
和apr
软件包。有关安装openssl
和apr
软件包的更多信息,请参阅 Red Hat Enterprise Linux 软件包要求。注意这些操作系统原生库也由
jws-6.1.0-application-server- <platform>- <architecture> .zip
提供。如果要在 Red Hat Enterprise Linux 8 或 9 上运行 JSSE+OpenSSL 或 APR,则必须使用 Tomcat-Native 来确保成功操作。tomcat-Native 位于原生归档目录中。
您已配置了支持启用了 SSL 的 HTTP/2 协议的连接器。对于 JBoss Web Server 6.1,以下连接器支持 HTTP/2 协议:
- 带有 JSSE + OpenSSL 的 NIO 连接器(JSSE)
- 带有 JSSE + OpenSSL 的 NIO2 连接器(JSSE)
5.2. 为连接器启用 HTTP/2
在 server.xml
文件中,连接器定义中的升级协议默认设置为 HTTP/2。
流程
-
打开
JWS_HOME/tomcat/conf/server.xml
配置文件。 在连接器定义中,确保
UpgradeProtocol
类名称设为org.apache.coyote.http2.Http2Protocol
。例如:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" maxParameterCount="1000"> <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" /> <SSLHostConfig> <Certificate certificateKeystoreFile="conf/localhost-rsa.jks" certificateKeystorePassword="changeit" type="RSA" /> </SSLHostConfig> </Connector>
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" maxParameterCount="1000"> <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" /> <SSLHostConfig> <Certificate certificateKeystoreFile="conf/localhost-rsa.jks" certificateKeystorePassword="changeit" type="RSA" /> </SSLHostConfig> </Connector>
Copy to Clipboard Copied! 要应用任何配置更新,请以 root 用户身份重启 Red Hat JBoss Web Server。
要使用
systemd
在 Red Hat Enterprise Linux 上重启 JBoss Web Server,请输入以下命令:systemctl restart jws6-tomcat.service
# systemctl restart jws6-tomcat.service
Copy to Clipboard Copied! 要使用 start
.sh
在 Red Hat Enterprise Linux 上重启 JBoss Web Server,请输入以下命令:JWS_HOME/sbin/shudown.sh JWS_HOME/sbin/startup.sh
# JWS_HOME/sbin/shudown.sh # JWS_HOME/sbin/startup.sh
Copy to Clipboard Copied! 要在 Windows Server 上重启 JBoss Web Server,请输入以下命令:
net restart tomcat10
# net restart tomcat10
Copy to Clipboard Copied!
5.3. 查看 JBoss Web 服务器日志以验证是否启用了 HTTP/2
您可以查看 JBoss Web Server 控制台输出日志,以验证是否启用了 HTTP/2。
先决条件
- 您已为 连接器启用了 HTTP/2。
步骤
要查看控制台输出日志,请输入以下命令:
cat JWS_HOME/tomcat/logs/catalina.out | grep 'h2'
$ cat JWS_HOME/tomcat/logs/catalina.out | grep 'h2'
Copy to Clipboard Copied! 注意在前面的命令中,将
JWS_HOME
替换为您的 JBoss Web Server 安装的顶级目录。默认情况下,JBoss Web 服务器以单行格式生成控制台输出。如果要将 JBoss Web 服务器配置为以 JavaScript Object Notation (JSON)格式生成控制台输出,您可以将
java.util.logging.ConsoleHandler.formatter
属性设置为JWS_HOME/tomcat/conf/logging.properties
文件中的org.apache.juli.JsonFormatter
。
验证
如果启用了 HTTP/2,命令会生成以下类型的输出,表示连接器已配置为支持协商至
[h2]
:06-Apr-2018 04:49:26.201 INFO [main] org.apache.coyote.http11.AbstractHttp11Protocol.configureUpgradeProtocol The ["connector_name"] connector has been configured to support negotiation to [h2] via ALPN
06-Apr-2018 04:49:26.201 INFO [main] org.apache.coyote.http11.AbstractHttp11Protocol.configureUpgradeProtocol The ["connector_name"] connector has been configured to support negotiation to [h2] via ALPN
Copy to Clipboard Copied!
5.4. 使用 curl 命令验证是否启用了 HTTP/2
您可以使用 curl
命令行工具验证是否启用了 HTTP/2。
先决条件
- 您已为 连接器启用了 HTTP/2。
您使用支持 HTTP/2 的
curl
版本。要检查您是否使用了支持 HTTP/2 的
curl
版本,请输入以下命令:curl -V
$ curl -V
Copy to Clipboard Copied! 这个命令会产生以下输出类型:
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
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
Copy to Clipboard Copied!
步骤
要检查 HTTP/2 协议是否活跃,请输入以下命令:
curl -I http://<JBoss_Web_Server>:8080/
$ curl -I http://<JBoss_Web_Server>:8080/
Copy to Clipboard Copied! 注意在前面的示例中,将 < ;JBoss_Web_Server > 替换为修改后的连接器的 URI,如
example.com
。端口号取决于您的配置。
验证
如果 HTTP/2 协议处于活跃状态,
curl
命令会生成以下输出:HTTP/2 200
HTTP/2 200
Copy to Clipboard Copied! 否则,如果 HTTP/2 协议不活跃,
curl
命令会生成以下输出:HTTP/1.1 200
HTTP/1.1 200
Copy to Clipboard Copied!
第 6 章 在 Red Hat JBoss Web Server 中使用密码库
JBoss Web 服务器密码库(名为 tomcat-vault
)是 Apache Tomcat 的 PicketLink vault 扩展。您可以使用密码库来屏蔽密码和其他敏感字符串,并将敏感信息存储在加密的 Java 密钥存储中。当使用密码库时,您可以停止在 Tomcat 配置文件中存储明文密码。Tomcat 可以使用密码库从密钥存储搜索密码和其他敏感字符串。
有关将 CRYPT
功能与密码 vault 搭配使用的更多信息,请参阅使用 CRYPT。
Federal Information Processing Standard (FIPS) 140-2 不支持 tomcat-vault
提供的基于密码的加密。如果要在 JBoss Web 服务器主机上使用基于密码的加密,您必须确保禁用 FIPS。如果您在启用了 FIPS 模式时尝试使用 tomcat-vault
,则会显示以下出错信息: Security Vault 无法在 FIPS 模式下使用
6.1. 从存档文件安装密码库
从存档文件安装 JBoss Web 服务器时,当您安装 jws-6.1.0-application-server.zip
文件时,密码 vault 会被自动安装。密码库位于 JWS_HOME/tomcat/lib/tomcat-vault.jar
文件中。
6.2. 使用 DNF 软件包管理器在 RHEL 上安装密码库
当您在 RPM 软件包的 Red Hat Enterprise Linux 上安装 JBoss Web Server 时,您可以使用 DNF 软件包管理器安装密码库。
流程
以 root 用户身份输入以下命令:
dnf install jws6-tomcat-vault
dnf install jws6-tomcat-vault
Copy to Clipboard Copied!
6.3. 在 JBoss Web 服务器中启用密码库
您可以通过在 catalina.properties
文件中添加配置属性来启用密码库。
先决条件
- 您已从 归档文件 或使用 DNF 软件包管理器 安装了密码库。
流程
- 如果已经运行,请停止 Tomcat。
-
打开
JWS_HOME/tomcat/conf/catalina.properties
文件。 在
catalina.properties
文件中,输入以下行:org.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.vault.util.PropertySourceVault
org.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.vault.util.PropertySourceVault
Copy to Clipboard Copied! 注意在前面的示例中,将
JWS_HOME
替换为 JBoss Web Server 安装的路径。本例中显示的路径使用正斜杠(/
)作为目录分隔符。
6.4. 在 JBoss Web 服务器中创建 Java 密钥存储
在使用密码库之前,您必须首先使用 keytool -genseckey
命令创建 Java 密钥存储。
步骤
使用以下命令:
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 \ -keystore JWS_HOME/tomcat/vault.keystore \ -alias my_vault \ -storetype jceks \ -keyalg AES \ -keysize 128 \ -storepass <vault_password> \ -keypass <vault_password> \ -validity 730
Copy to Clipboard Copied! 注意在前面的示例中,将参数设置替换为适合您的环境的值。
有关每个参数的更多信息,请使用
keytool -genseckey -help
命令。
密码密码库目前不支持 PKCS12
密钥存储类型。密码 vault 仅支持 JCEKS
密钥存储类型。
根据您使用的密钥存储算法,您必须指定以下 keysize
值之一:
-
如果您使用 AES,请指定
-keysize 128
。 -
如果您使用 DES,请指定
-keysize 56
。 -
如果您使用 DESede,请指定
-keysize 168
。
6.5. Apache Tomcat 的密码库初始化
您可以使用 tomcat-vault.sh
脚本初始化 Apache Tomcat 的密码 vault。tomcat-vault.sh
脚本支持以下一种机制来初始化密码库:
根据您如何安装密码库,tomcat-vault
脚本的位置会有所不同:
-
如果您从归档文件安装了密码库,
tomcat-vault.sh
脚本位于JWS_HOME/tomcat/bin
目录中。 -
如果您使用 DNF 软件包管理器安装密码库,
tomcat-vault.sh
脚本位于/opt/rh/jws6/root/usr/bin
目录中。
6.5.1. 以交互方式初始化 Apache Tomcat 的密码库
您可以以交互方式初始化 Tomcat 的密码库。在这种情况下,tomcat-vault.sh
脚本提示您在脚本运行时输入值。
流程
进入包含
tomcat-vault.sh
脚本的目录:-
如果您从归档文件安装了密码库,请转至
JWS_HOME/tomcat/bin
目录。 -
如果您从 RPM 软件包安装了密码库,请转至
/opt/rh/jws6/root/usr/bin
目录。
-
如果您从归档文件安装了密码库,请转至
运行
tomcat-vault.sh
脚本:./tomcat-vault.sh
$ ./tomcat-vault.sh
Copy to Clipboard Copied! 按照屏幕提示进行操作。
例如:
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
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
Copy to Clipboard Copied! 在前面的示例中,将指定的设置替换为适合您的环境的值。
- 请注意 Tomcat 属性文件的输出。在将 Tomcat 配置为使用密码库时,您需要此信息。
6.5.2. 使用非互动设置为 Apache Tomcat 初始化密码 vault
您可以使用非交互式设置初始化 Tomcat 的密码库。在这种情况下,在运行该脚本时,您必须将所需的输入作为 tomcat-vault.sh
脚本的参数提供。
流程
进入包含
tomcat-vault.sh
脚本的目录:-
如果您从归档文件安装了密码库,请转至
JWS_HOME/tomcat/bin
目录。 -
如果您从 RPM 软件包安装了密码库,请转至
/opt/rh/jws6/root/usr/bin
目录。
-
如果您从归档文件安装了密码库,请转至
运行
tomcat-vault.sh
脚本并提供所需参数:例如:
./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
$ ./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
Copy to Clipboard Copied! 在前面的示例中,将指定的设置替换为适合您的环境的值。
当您指定 the -g, --generate-config
选项时,tomcat-vault.sh
脚本还会创建一个包含指定属性的 vault.properties
文件。
6.6. 将 Tomcat 配置为使用密码库
您可以通过更新 vault.properties
文件中的配置设置,将 Apache Tomcat 配置为使用密码库。
先决条件
步骤
-
进入
JWS_HOME/tomcat/conf/
目录。 -
创建名为
vault.properties
的文件。 在
vault.properties
文件中,输入您在为 Tomcat 初始化密码库时指定的 vault 配置属性。例如:
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/
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/
Copy to Clipboard Copied!
前面的例子基于 交互式 Apache Tomcat 的 Initializing password vault 中的 vault 设置示例。
对于 KEYSTORE_PASSWORD
设置,请确保使用初始化密码库时生成的已屏蔽值。
6.7. 外部密码库配置
您可以将 vault 的 vault.properties
文件存储在 JWS_HOME/tomcat/conf/
目录之外。如果您已经设置了 CATALINA_BASE/conf/
目录,您可以将 vault.properties
文件存储在 CATALINA_BASE/conf/
目录中。
有关设置 CATALINA_BASE
目录的更多信息,请参阅在 Apache Tomcat 网站上 运行 Apache Tomcat 10.1 Servlet/JSP Container 中的"高级配置 - Multiple Tomcat 实例"部分。
CATALINA_BASE
的默认位置是 JWS_HOME/tomcat/
。这也被称为 CATALINA_HOME
目录。
其它资源
- Apache Tomcat 10: 简介 - 目录和文件
- 运行 Apache Tomcat 10.1 Servlet/JSP Container: "高级配置 - 多 Tomcat 实例"
6.8. 将敏感字符串存储在密码库中
您可以使用 tomcat-vault.sh
脚本将敏感字符串存储在密码库中。您可以以交互方式或非互动模式运行 tomcat-vault.sh
脚本。
将敏感字符串添加到密码库时,您必须为字符串指定一个名称。在这种情况下,字符串的名称被称为 属性名称
,字符串本身被称为 安全属性
。
流程
进入包含
tomcat-vault.sh
脚本的目录:-
如果您从归档文件安装了密码库,请转至
JWS_HOME/tomcat/bin
目录。 -
如果您从 RPM 软件包安装了密码库,请转至
/opt/rh/jws6/root/usr/bin
目录。
-
如果您从归档文件安装了密码库,请转至
要在非互动模式中使用
tomcat-vault.sh
脚本,请输入以下命令:./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
$ ./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
Copy to Clipboard Copied!
前面的例子基于 交互式 Apache Tomcat 的 Initializing password vault 中的 vault 设置示例。前面的示例存储敏感字符串 P@SSW0""D
,其属性名为 manager_password
。
运行 tomcat-vault.sh
脚本时,您可以选择指定一个 vault 块来存储密码。如果没有指定块,tomcat-vault.sh
脚本会自动创建块。前面的示例指定了一个名为 my_block
的 vault 块。
6.9. 在 Tomcat 配置中使用存储的敏感字符串
当您将敏感字符串存储在密码库中时,您可以引用属性名称,而不是在配置文件中指定实际字符串。通过将安全字符串替换为字符串的属性名称,您可以确保 Tomcat 配置文件仅包含对密码的引用。在这种情况下,实际密码仅存储在密码库中。
步骤
- 打开包含敏感字符串的 Tomcat 配置文件。
将敏感字符串替换为字符串的属性名称,并确保以以下格式输入属性名称
:${VAULT::block_name::attribute_name::}
例如:
考虑安全字符串
P@SSW0""D
的以下示例文件条目:<user username="manager" password=*"P@SSW0#D"* roles="manager-gui"/>
<user username="manager" password=*"P@SSW0#D"* roles="manager-gui"/>
Copy to Clipboard Copied! 如果安全字符串
P@SSW0""D
带有属性 namemanager_password
,请将安全字符串替换为以下值:<user username="manager" password=*"${VAULT::my_block::manager_password::}"* roles="manager-gui"/>
<user username="manager" password=*"${VAULT::my_block::manager_password::}"* roles="manager-gui"/>
Copy to Clipboard Copied!
前面的例子基于 Storing a sensitive string in the password vault 中的示例设置。前面的示例将一个敏感字符串 P@SSW0""D
替换为属性 name manager_password
,它位于名为 my_block
的块中。
第 7 章 配置 SSI 过滤器
您可以为 JBoss Web 服务器配置基于过滤器的服务器 Side Includes (SSI)支持,以便在现有 HTML 页面中启用动态生成内容。
如果您尝试将 SSI 过滤器配置为之前的版本,则 SSI 指令将不起作用。
步骤
-
打开
conf/web.xml
文件。 在
web.xml
文件中,取消以下块的注释:<mime-mapping> <extension>shtml</extension> <mime-type>text/x-server-parsed-html</mime-type> </mime-mapping>
<mime-mapping> <extension>shtml</extension> <mime-type>text/x-server-parsed-html</mime-type> </mime-mapping>
Copy to Clipboard Copied!
第 8 章 为 Red Hat JBoss Web Server 配置 FIPS
当在 Red Hat Enterprise Linux 8 主机上安装 JBoss Web Server 时,您可以将 JBoss Web 服务器配置为符合联邦信息处理标准(FIPS)。当您在 Red Hat Enterprise Linux 主机上启用 FIPS 时,这允许 JBoss Web 服务器自动以 FIPS 模式操作。
FIPS 不支持 JBoss Web 服务器的 tomcat-vault
组件提供的基于密码的加密功能。如果要在 JBoss Web 服务器主机上使用基于密码的加密,您必须确保禁用 FIPS。有关基于密码的加密和 tomcat-vault
的更多信息,请参阅 Red Hat JBoss Web Server 的 Vault。
8.1. FIPS 简介
Federal Information Processing Standards (FIPS)提供了改进计算机系统和网络之间的安全性和互操作性的指南和要求。FIPS 140-2 和 140-3 系列适用于硬件和软件级别的加密模块。美国国家标准与技术研究所实施了一个 加密模块验证程序,其中包含可搜索的进程和已批准的加密模块列表。
Red Hat Enterprise Linux 提供了一个集成框架,用于在一个系统范围内启用 FIPS 140-2 合规性。在 FIPS 模式下运行时,使用加密库的软件包会根据全局策略进行自我配置。
8.2. 在 RHEL 8 中为 JBoss Web 服务器配置 FIPS
您可以在系统安装过程中在 Red Hat Enterprise Linux 8 主机上启用 FIPS 合规性。另外,您可以在完成系统安装后将您的系统切换到 FIPS 模式。
步骤
要启用 FIPS 模式,请完成以下步骤之一:
- 如果要在安装过程中启用 FIPS,请按照 安全强化 中的说明:安装启用了 FIPS 模式的系统。
- 如果要在系统安装后切换到 FIPS 模式,请按照 安全强化 中的说明操作:将系统切换到 FIPS 模式。
验证
使用以下命令:
fips-mode-setup --check
fips-mode-setup --check
Copy to Clipboard Copied! 如果启用了 FIPS,它会输出以下输出:
FIPS mode is enabled.
FIPS mode is enabled.
Copy to Clipboard Copied!
附录 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
1.0.2 文件中设置 CATALINA_OPTS
将 Java IPv4 和 IPv6 属性导出到 Tomcat。在 Red Hat Enterprise Linux 中,setenv
文件有一个 .sh
扩展。在 Windows 服务器上,setenv
文件有一个 .bat
扩展名。
步骤
如果
JWS_HOME/tomcat/bin/setenv
prepared 文件不存在,请创建该文件。注意如果您使用 Red Hat Enterprise Linux,请创建一个
setenv.sh
文件。如果您使用 Windows Server,请创建一个setenv.bat
文件。要将 Java IPv4 和 IPv6 属性导出到 Tomcat,请执行以下步骤之一:
如果使用 Red Hat Enterprise Linux,请输入以下命令:
export "CATALINA_OPTS=-Djava.net.preferIPv4Stack=YOUR_VALUE -Djava.net.preferIPv6Addresses=YOUR_VALUE"
export "CATALINA_OPTS=-Djava.net.preferIPv4Stack=YOUR_VALUE -Djava.net.preferIPv6Addresses=YOUR_VALUE"
Copy to Clipboard Copied! 如果使用 Windows Server,请输入以下命令:
set "CATALINA_OPTS=-Djava.net.preferIPv4Stack=YOUR_VALUE -Djava.net.preferIPv6Addresses=YOUR_VALUE"
set "CATALINA_OPTS=-Djava.net.preferIPv4Stack=YOUR_VALUE -Djava.net.preferIPv6Addresses=YOUR_VALUE"
Copy to Clipboard Copied!
A.3. 配置 Tomcat 绑定
您可以通过指定 IPv6 地址,在 JWS_HOME/tomcat/conf/server.xml
文件中配置 Tomcat 绑定。
步骤
-
打开
JWS_HOME/tomcat/conf/server.xml
文件。 要指定 Tomcat 绑定地址,请输入以下详情:
<Server ... address="TOMCAT_BINDING_ADDRESS">
<Server ... address="TOMCAT_BINDING_ADDRESS">
Copy to Clipboard Copied! 要指定 HTTP 连接器地址,请输入以下详情:
<Connector protocol="HTTP/1.1" ... address="HTTP_CONNECTOR_ADDRESS">
<Connector protocol="HTTP/1.1" ... address="HTTP_CONNECTOR_ADDRESS">
Copy to Clipboard Copied! 要指定 AJP 连接器地址,请输入以下详情:
<Connector protocol="AJP/1.3" ... address="AJP_CONNECTOR_ADDRESS">
<Connector protocol="AJP/1.3" ... address="AJP_CONNECTOR_ADDRESS">
Copy to Clipboard Copied!
确保将 TOMCAT_BINDING_ADDRESS
、HTTP_CONNECTOR_ADDRESS
和 AJP_CONNECTOR_ADDRESS
替换为正确的 IPv6 地址。