文档索引

简介

Apache Tomcat Native Library 是一个可选组件,供 Apache Tomcat 使用,它允许 Tomcat 使用 OpenSSL 替代 JSSE 来支持 TLS 连接。

要闻

构建

要求

要构建 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.xTomcat 10.1.xTomcat 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.xTomcat 10.1.xTomcat 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]