TomcatのAPRコネクタで発生する「undefined symbol: SSL_CTX_clear_extra_chain_certs」について

Tomcatの脆弱性が出たので最新のに差し替えて起動とかしたら

org.apache.catalina.core.AprLifecycleListener init
Loaded APR based Apache Tomcat Native library 1.1.33 using APR version 1.2.7.
org.apache.catalina.core.AprLifecycleListener init
APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
org.apache.catalina.core.AprLifecycleListener initializeSSL
OpenSSL successfully initialized with version OpenSSL 0.9.8e-rhel5 01 Jul 2008
/usr/java/latest/bin/java: symbol lookup error: /usr/local/tomcat-native/lib/libtcnative-1.so.0.1.33: undefined symbol: SSL_CTX_clear_extra_chain_certs

こんなん出ました。

どうやらOpenSSLの0.9.8系では「SSL_CTX_clear_extra_chain_certs」という変数が定義されていないようです。

tomcat-nativeをビルドするときにコメントアウトで対応可能です。

cd {tomcat_home}/bin
tar zxvf tomcat-native.tar.gz  
cd tomcat-native-1.1.33-src/jni/native
vim src/sslutils.c
---
SSL_CTX_clear_extra_chain_certs(ctx);
↓
/* SSL_CTX_clear_extra_chain_certs(ctx); */
---
./configure --with-apr=/usr/bin/apr-1-config --with-java-home=/usr/java/latest --with-ssl=yes --prefix=/usr/local/tomcat-native-alt
make
make install

とおこないます。

あとは「LD_LIBRARY_PATH」を変更して読み込み、起動すればエラーは出なくなります。