ドキュメントインデックス

導入

Apache Tomcatネイティブライブラリは、Apache Tomcatで使用するためのオプションのコンポーネントで、TomcatがJSSEの代わりにOpenSSLを使用してTLS接続をサポートできるようにします。

見出し

ビルド

要件

tc-nativeのビルドには3つのコンポーネントがインストールされている必要があります

  • APRライブラリ
  • OpenSSLライブラリ
  • Java SE Development Kit(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など)で、tc-nativeをビルドするために、よく知られたconfigureとmakeが使用されます。
jni/nativeで実行します

./configure --help

すべてのパラメータの説明を読む。

./configure --with-apr=$HOME/APR \
            --with-java-home=$JAVA_HOME \
            --with-ssl=$HOME/OPENSSL \
            --prefix=$CATALINA_HOME

tc-nativeをビルドできるように、インクルードとMakefilesを作成します。
ここで
$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にあります。

Windows

tc-nativeのWindowsソースをダウンロードして展開します。

APROpenSSLのWindowsソースを入手します。native/srclibのパッチを適用し、プラットフォーム(X86またはX64)のAPRとOpenSSLをビルドします。

とビルドします

nmake -f NMAKEMakefile WITH_APR=... WITH_OPENSSL=... APR_DECLARE_STATIC=1

標準のリリースディストリビューションを作成する手順を含む、より詳細な手順はWikiで提供されています。

インストールとテスト

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 and 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]