Apache Tomcat 原生库是 Apache Tomcat 的一个可选组件,它允许 Tomcat 使用 OpenSSL 替换 JSSE 来支持 TLS 连接。
文档索引
简介
头条新闻
- 2023 年 10 月 2 日 - **TC-Native-2.0.6 发布**
Apache Tomcat 团队很高兴地宣布 Tomcat Native 2.0.6 稳定版立即可用。
选定平台的源代码和二进制文件可从 下载页面 获取。
请参阅 变更日志 以获取完整的更改列表。
构建
需求
构建 tc-native 需要安装三个组件
- APR 库
- OpenSSL 库
- Java SE 开发工具包 (JDK)
在基于 Debian 的 Linux 中,这些依赖项可以通过以下命令安装
apt-get install libapr1.0-dev libssl-dev
在基于 RPM 的 Linux 中,这些依赖项可以通过以下命令安装
yum install apr-devel openssl-devel
UNIX
在所有 POSIX 系统(Linux、Solaris、HP-UX、AIX 等)上,使用众所周知的 configure 和 make 来构建 tc-native。
在 jni/native 中运行
./configure --help
以阅读所有参数的描述。
./configure --with-apr=$HOME/APR \
--with-java-home=$JAVA_HOME \
--with-ssl=$HOME/OPENSSL \
--prefix=$CATALINA_HOME
以创建包含文件和 makefile,以便能够构建 tc-native。
其中
$HOME/APR
类似于 /usr/bin/apr-1-config 或 apr 安装的路径。
$JAVA_HOME
类似于 /home/jfclere/JAVA/jdk11 或 JDK 安装的路径。任何 JDK 都可以使用,但建议使用与 Tomcat 一起使用的 JVM 版本相同的 JVM。
$HOME/OPENSSL
是 OpenSSL 安装的路径。
$CATALINA_HOME
是生成库将安装的路径。类似于 $HOME/apache-tomcat-10.1.0
configure 能够推断出大多数 OpenSSL 标准安装。因此,大多数情况下,以下命令就足够了
./configure --with-apr=/usr/bin/apr-1-config \
--with-java-home=/home/jfclere/JAVA/jdk11 \
--with-ssl=yes \
--prefix=$CATALINA_HOME
构建库并安装它们
make && make install
库将位于 $CATALINA_HOME/lib 中
安装和测试
配置 Tomcat
Apache Tomcat 默认情况下启用了 AprLifecycleListener
。不过,您应该检查您的 conf/server.xml
以确保存在以下类似内容,并且未被注释掉
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
有关配置详细信息,请参见 Apache Tomcat 文档。
UNIX
编辑 $CATALINA_HOME/bin/setenv.sh(如果需要,创建该文件)并将 tc-native 库的路径添加到 LD_LIBRARY_PATH。例如
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib
export LD_LIBRARY_PATH
启动 tomcat 并检查类似以下消息
15-Jun-2022 11:06:23.274 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [2.0.0-dev] using APR version [1.7.0]
15-Jun-2022 11:06:23.298 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.4-dev 3 May 2022]
请参考 tomcat 文档配置连接器(参见 Tomcat 11.0.x、Tomcat 10.1.x、Tomcat 9.0.x 和 Tomcat 8.5.x)
Windows
编辑 $CATALINA_BASE\bin\setenv.bat(如果需要,创建该文件)并将 tc-native 库、apr 和 OpenSSL 的路径添加到 PATH。例如
set PATH=%PATH;C:\cygwin\home\support\tomcat-native-current-win32-src\jni\native\Debug;C:\cygwin\home\support\tomcat-native-current-win32-src\jni\apr\Debug;C:\OpenSSL\lib\VC
启动 tomcat 并检查类似以下消息
15-Jun-2022 11:06:23.274 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [2.0.0-dev] using APR version [1.7.0]
15-Jun-2022 11:06:23.298 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.4-dev 3 May 2022]