Can any one please tell me the how to configure the HTTP2 on Apache Tomcat Server.
2 Answers
here is a developer installation guide I wrote to the tomcat mailing list some time ago: Link to mailing list post
- Download XCode from the AppStore
- Install Brew: http://brew.sh/
- Download Apache Tomcat binaries > 8.5 http://tomcat.apache.org/
- Install APR and OPENSSL with “brew install openssl” and “brew install apr”
Create pem files in “apache-tomcat-8.5.15/conf” folder - use “changeit” every time a password is going to be requested (The commands can be executed separately or within a shell script):
- /usr/local/Cellar/openssl/1.0.2l/bin/openssl genrsa -des3 -out localhost-rsa-key 1024
- /usr/local/Cellar/openssl/1.0.2l/bin/openssl genrsa -out localhost-key 1024
- /usr/local/Cellar/openssl/1.0.2l/bin/openssl rsa -in localhost-rsa-key -out localhost-key
- /usr/local/Cellar/openssl/1.0.2l/bin/openssl req -new -key localhost-key -out localhost-csr
- /usr/local/Cellar/openssl/1.0.2l/bin/openssl x509 -req -days 365 -in localhost-csr -signkey localhost-key -out localhost-crt
- cat localhost-key localhost-crt > localhost-rsa-cert.pem
- cat localhost-rsa-cert.pem > localhost-rsa-chain.pem
- cat localhost-rsa-key > localhost-rsa-key-mod.pem
- /usr/local/Cellar/openssl/1.0.2l/bin/openssl rsa -in localhost-rsa-key-mod.pem -out localhost-rsa-key.pem
Uncomment the http/2 connector with protocol “org.apache.coyote.http11.Http11AprProtocol” in the "apache-tomcat-8.5.15/conf/server.xml"
- Tomcat native installation
- Extract “apache-tomcat-8.5.15/bin/tomcat-native.tar.gz”
- Go into folder “apache-tomcat-8.5.15/bin/tomcat-native-1.2.12-src/native”
- Run “./configure --with-apr=/usr/local/Cellar/apr/1.5.2_3/ --with-ssl=/usr/local/Cellar/openssl/1.0.2l”
- Run “make”
Create a setenv.sh file within the /bin folder and add lines:
- LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/Cellar/apr/1.5.2_3/libexec/lib:/Applications/apache-tomcat-8.5.15/bin/tomcat-native-1.2.12-src/native/.libs
- JAVA_OPTS="-Djava.library.path=/usr/local/Cellar/apr/1.5.2_3/libexec/lib:/Applications/apache-tomcat-8.5.15/bin/tomcat-native-1.2.12-src/native/.libs"
Start Server
Logs:
01-Jun-2017 09:32:46.551 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.12] using APR version [1.5.2].
01-Jun-2017 09:32:46.551 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
01-Jun-2017 09:32:46.551 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
01-Jun-2017 09:32:46.556 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.0.2l 25 May 2017]
- Note: The paths might be adjusted according to the version of openssl / apr / tomcat-native / tomcat version
Since you haven't written what you have already tried I suggest you start with Apache's guide. It explains how to compile Apache with the HTTP/2 module (it's still experimental so it isn't on by default) and the configuration process