title: SSL configuration in tomcat and apr
body: <p>I'm facing a problem setting up my tomcat with apr native lib, 
  I have the following:</p>
  
  <pre><code>Tomcat: 7.0.42
  Java: 1.7.0_40-b43
  OS: Centos 6.4 (2.6.32-358.18.1.el6.i686)
  APR: 1.3.9
  Native lib: 1.1.27
  OpenSSL: openssl-1.0.0-27.el6_4.2.i686
  </code></pre>
  
  <p>My server.xml looks like:</p>
  
  <pre><code>...
  &lt;Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /&gt;
  ...
  &lt;Connector port="8443" protocol="HTTP/1.1"
  SSLEnabled="true" maxThreads="150" scheme="https" secure="true"
  clientAuth="false" sslProtocol="TLS"
  SSLCertificateFile="/tmp/monitoringPortalCert.pem"
  SSLCertificateKeyFile="/tmp/monitoringPortalKey.pem"
  SSLPassword="hide"
  /&gt;
  ...
  </code></pre>
  
  <p>I compiled the native lib as follow:</p>
  
  <pre><code>./configure --with-apr=/usr/bin/apr-1-config --with-ssl=yes --prefix=$CATALINA_HOME 
  make &amp;&amp; make install
  </code></pre>
  
  <p>The APR is loaded ok:</p>
  
  <pre><code>Oct 06, 2013 7:55:14 PM org.apache.catalina.core.AprLifecycleListener init
  INFO: Loaded APR based Apache Tomcat Native library 1.1.27 using APR version 1.3.9.
  </code></pre>
  
  <p>But I'm still having this error:</p>
  
  <pre><code>SEVERE: Failed to initialize the SSLEngine.
  org.apache.tomcat.jni.Error: 70023: This function has not been implemented on this  platform
  </code></pre>
  
  <p>Could you guys help to understand where my error is? What am I missing?</p>
  
  <p>Thanks in advance for your support.</p>
  
  <hr>
  
  <p>Thanks for the comment Mark, below it is the ./configure / make &amp;&amp; make install outcome:
  ./configure</p>
  
  <pre><code>[root@localhost native]# ./configure --with-apr=/usr/bin/apr-1-config --with-ssl=yes --    prefix=$CATALINA_HOME &amp;&amp; make &amp;&amp; make install
  checking build system type... i686-pc-linux-gnu
  checking host system type... i686-pc-linux-gnu
  checking target system type... i686-pc-linux-gnu
  checking for a BSD-compatible install... /usr/bin/install -c
  checking for working mkdir -p... yes
  Tomcat Native Version: 1.1.27
  checking for chosen layout... tcnative
  checking for APR... yes
    setting CC to "gcc"
    setting CPP to "gcc -E"
  checking for JDK location (please wait)... /usr/java/jdk1.7.0_40 from environment
  checking Java platform... checking Java platform...
  checking for sablevm... NONE
    adding "-I/usr/java/jdk1.7.0_40/include" to TCNATIVE_PRIV_INCLUDES
  checking os_type directory...  linux
    adding "-I/usr/java/jdk1.7.0_40/include/linux" to TCNATIVE_PRIV_INCLUDES
  checking for gcc... gcc
  checking whether the C compiler works... yes
  checking for C compiler default output file name... a.out
  checking for suffix of executables...
  checking whether we are cross compiling... no
  checking for suffix of object files... o
  checking whether we are using the GNU C compiler... yes
  checking whether gcc accepts -g... yes
  checking for gcc option to accept ISO C89... none needed
  checking for OpenSSL library... using openssl from /usr/lib and /usr/include
  checking OpenSSL library version... ok
  checking for OpenSSL DSA support... yes
    setting TCNATIVE_LDFLAGS to "-lssl -lcrypto"
    adding "-DHAVE_OPENSSL" to CFLAGS
    setting TCNATIVE_LIBS to ""
    setting TCNATIVE_LIBS to " /usr/lib/libapr-1.la  -lpthread"
  configure: creating ./config.status
  config.status: creating tcnative.pc
  config.status: creating Makefile
  config.status: executing default commands
  make[1]: Entering directory `/usr/apache-tomcat-7.0.42/bin/tomcat-native-1.1.27-    src/jni/native'
  make[1]: Nothing to be done for `local-all'.
  make[1]: Leaving directory `/usr/apache-tomcat-7.0.42/bin/tomcat-native-1.1.27-    src/jni/native'
  make[1]: Entering directory `/usr/apache-tomcat-7.0.42/bin/tomcat-native-1.1.27-   src/jni/native'
  make[1]: Nothing to be done for `local-all'.
  make[1]: Leaving directory `/usr/apache-tomcat-7.0.42/bin/tomcat-native-1.1.27-  src/jni/native'
  /usr/lib/apr-1/build/mkdir.sh /usr/apache-tomcat-7.0.42/include/apr-1 /usr/apache-   tomcat-7.0.42/lib/pkgconfig \
                   /usr/apache-tomcat-7.0.42/lib /usr/apache-tomcat-7.0.42/bin
  /usr/bin/install -c -m 644 tcnative.pc /usr/apache-tomcat-7.0.42/lib/pkgconfig/tcnative-  1.pc
  list=''; for i in $list; do \
              ( cd $i ; make DESTDIR= install ); \
      done
  /bin/sh /usr/lib/apr-1/build/libtool --mode=install /usr/bin/install -c -m 755     libtcnative-1.la /usr/apache-tomcat-7.0.42/lib
  libtool: install: /usr/bin/install -c -m 755 .libs/libtcnative-1.so.0.1.27 /usr/apache-    tomcat-7.0.42/lib/libtcnative-1.so.0.1.27
  libtool: install: (cd /usr/apache-tomcat-7.0.42/lib &amp;&amp; { ln -s -f libtcnative-  1.so.0.1.27 libtcnative-1.so.0 || { rm -f libtcnative-1.so.0 &amp;&amp; ln -s libtcnative-   1.so.0.1.27 libtcnative-1.so.0; }; })
  libtool: install: (cd /usr/apache-tomcat-7.0.42/lib &amp;&amp; { ln -s -f libtcnative-   1.so.0.1.27 libtcnative-1.so || { rm -f libtcnative-1.so &amp;&amp; ln -s libtcnative-1.so.0.1.27   libtcnative-1.so; }; })
  libtool: install: /usr/bin/install -c -m 755 .libs/libtcnative-1.lai /usr/apache-tomcat-  7.0.42/lib/libtcnative-1.la
  libtool: install: /usr/bin/install -c -m 755 .libs/libtcnative-1.a /usr/apache-tomcat-   7.0.42/lib/libtcnative-1.a
  libtool: install: chmod 644 /usr/apache-tomcat-7.0.42/lib/libtcnative-1.a
  libtool: install: ranlib /usr/apache-tomcat-7.0.42/lib/libtcnative-1.a
  libtool: install: warning: remember to run `libtool --finish /usr/local/apr/lib'
  </code></pre>
  
  <p>make &amp;&amp; make install:</p>
  
  <pre><code>make[1]: Entering directory `/usr/apache-tomcat-7.0.42/bin/tomcat-native-1.1.27-   src/jni/native'
  make[1]: Nothing to be done for `local-all'.
  make[1]: Leaving directory `/usr/apache-tomcat-7.0.42/bin/tomcat-native-1.1.27-  src/jni/native'
  make[1]: Entering directory `/usr/apache-tomcat-7.0.42/bin/tomcat-native-1.1.27-   src/jni/native'
  make[1]: Nothing to be done for `local-all'.
  make[1]: Leaving directory `/usr/apache-tomcat-7.0.42/bin/tomcat-native-1.1.27-   src/jni/native'
  /usr/lib/apr-1/build/mkdir.sh /usr/apache-tomcat-7.0.42/include/apr-1 /usr/apache-   tomcat-7.0.42/lib/pkgconfig \
                   /usr/apache-tomcat-7.0.42/lib /usr/apache-tomcat-7.0.42/bin
  /usr/bin/install -c -m 644 tcnative.pc /usr/apache-tomcat-7.0.42/lib/pkgconfig/tcnative- 1.pc
  list=''; for i in $list; do \
              ( cd $i ; make DESTDIR= install ); \
      done
  /bin/sh /usr/lib/apr-1/build/libtool --mode=install /usr/bin/install -c -m 755     libtcnative-1.la /usr/apache-tomcat-7.0.42/lib
  libtool: install: /usr/bin/install -c -m 755 .libs/libtcnative-1.so.0.1.27 /usr/apache-  tomcat-7.0.42/lib/libtcnative-1.so.0.1.27
  libtool: install: (cd /usr/apache-tomcat-7.0.42/lib &amp;&amp; { ln -s -f libtcnative-   1.so.0.1.27 libtcnative-1.so.0 || { rm -f libtcnative-1.so.0 &amp;&amp; ln -s libtcnative-  1.so.0.1.27 libtcnative-1.so.0; }; })
  libtool: install: (cd /usr/apache-tomcat-7.0.42/lib &amp;&amp; { ln -s -f libtcnative-  1.so.0.1.27 libtcnative-1.so || { rm -f libtcnative-1.so &amp;&amp; ln -s libtcnative-1.so.0.1.27    libtcnative-1.so; }; })
  libtool: install: /usr/bin/install -c -m 755 .libs/libtcnative-1.lai /usr/apache-tomcat-  7.0.42/lib/libtcnative-1.la
  libtool: install: /usr/bin/install -c -m 755 .libs/libtcnative-1.a /usr/apache-tomcat-  7.0.42/lib/libtcnative-1.a
  libtool: install: chmod 644 /usr/apache-tomcat-7.0.42/lib/libtcnative-1.a
  libtool: install: ranlib /usr/apache-tomcat-7.0.42/lib/libtcnative-1.a
  libtool: install: warning: remember to run `libtool --finish /usr/local/apr/lib'
  </code></pre>
  
  <p>It seems everything is fine, but the error is not self-explanatory</p>