Apache Tomcat Native Library 是一个可选组件,供 Apache Tomcat 使用,它允许 Tomcat 使用 OpenSSL 替代 JSSE 来支持 TLS 连接。
文档索引
简介
要闻
- 2025 年 5 月 29 日 - TC-Native-2.0.9 发布
Apache Tomcat 团队荣幸地宣布,Tomcat Native 2.0.9 稳定版现已推出。
适用于选定平台的源代码和二进制文件可从下载页面获取。
请参阅更新日志以获取完整的变更列表。
构建
要求
要构建 TC-Native,必须安装以下组件
- APR 库
- OpenSSL 库
- Java SE 开发工具包 (JDK)
对于基于 Debian 的 Linux 发行版,可以使用以下命令安装这些依赖项
apt-get install libapr1-dev libssl-dev openjdk-11-jdk
对于基于 RPM 的 Linux 发行版,可以使用以下命令安装这些依赖项
yum install apr-devel openssl-devel java-11-openjdk-devel
UNIX
在所有类 POSIX 系统(如 Linux, Solaris, HP-UX, AIX 等)上,使用熟知的 configure 和 make 命令来构建 TC-Native。
要查看所有配置参数的描述,请在源代码发行版的 native
目录下运行以下命令
./configure --help
要创建构建 TC-Native 所需的头文件和 Makefile,请使用以下命令
./configure --with-apr=$HOME/APR \
--with-java-home=$JAVA_HOME \
--with-ssl=$HOME/OPENSSL \
--prefix=$CATALINA_HOME
其中
$HOME/APR
是 APR 安装路径,例如 /usr/bin/apr-1-config。
$JAVA_HOME
是 JDK 安装路径,例如 /home/jfclere/JAVA/jdk11。任何 JDK 版本都应该可以工作,但建议使用与您用于 Tomcat 的 JVM 版本相同的版本。
$HOME/OPENSSL
是 OpenSSL 的安装路径。
$CATALINA_HOME
是生成库将安装的路径,例如 $HOME/apache-tomcat-10.1.0
configure 脚本可以自动检测大多数标准的 APR 和 OpenSSL 安装。因此,通常一个等效的命令就足够了
./configure --with-java-home=$JAVA_HOME --prefix=$CATALINA_HOME
要构建和安装这些库,请运行
make && make install
这些库将安装到 $CATALINA_HOME/lib
。
Windows
详细的构建说明,包括创建标准发行版的步骤,请参见Wiki。
安装与测试
配置 Tomcat
Apache Tomcat 默认附带并启用 AprLifecycleListener
。然而,建议检查 conf/server.xml
文件以确保存在以下配置且未被注释
<Listener className="org.apache.catalina.core.AprLifecycleListener" />
有关详细配置说明,请参阅 Apache Tomcat 文档(请参见Tomcat 11.0.x、Tomcat 10.1.x 和Tomcat 9.0.x)。
UNIX
为确保 TC-Native 库正确加载,请遵循以下步骤
- 编辑
$CATALINA_HOME/bin/setenv.sh
文件。有关详细说明,请参阅您的 Apache Tomcat 发行版中的RUNNING.txt
文件。 - 检查 TC-Native 库是否存在于
$CATALINA_HOME/lib
中,并将 TC-Native 库的路径添加到 LD_LIBRARY_PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib
export LD_LIBRARY_PATH - 启动 Tomcat,并在日志中查找类似以下的消息
21-Jun-2024 11:06:23.274 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [2.0.7] using APR version [1.7.3].
21-Jun-2024 11:06:23.298 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.2.1 30 Jan 2024]
有关连接器的详细配置,请参阅 Apache Tomcat 文档(请参见Tomcat 11.0.x、Tomcat 10.1.x 和Tomcat 9.0.x)。
Windows
为确保 TC-Native 库正确加载,请遵循以下步骤
- 编辑
$CATALINA_HOME/bin/setenv.sh
文件。有关详细说明,请参阅您的 Apache Tomcat 发行版中的RUNNING.txt
文件。 - 确保
tcnative-2.dll
文件与您用于运行 Tomcat 的 JVM 的 CPU 架构(x86 或 x64)匹配,并且位于$CATALINA_HOME/bin
目录下。
此外,您也可以将 TC-Native 库的路径添加到 PATH 环境变量中
set PATH=%PATH%;C:\your\path\to\tc-native-dll
- 启动 Tomcat,并在日志中查找类似以下的消息
21-Jun-2024 11:06:23.274 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [2.0.7] using APR version [1.7.3].
21-Jun-2024 11:06:23.298 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.2.1 30 Jan 2024]