Apache Tomcat Native Library 是 Apache Tomcat 的選用元件,讓 Tomcat 可以使用 OpenSSL 取代 JSSE,以支援 TLS 連線。
文件索引
簡介
標題
- 2023 年 10 月 2 日 - TC-Native-2.0.6 發布
Apache Tomcat 團隊很榮幸宣布 Tomcat Native 2.0.6 Stable 立即提供。
來源和特定平台的二進位檔可從 下載頁面 取得。
請參閱 變更紀錄,以取得完整變更清單。
建置
需求
建置 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 版本。
$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]