(因为Jdk8不支持对ALPN(application Layer Protocol Negotiation)协议,因此使用jdk8自带的keytool无法实现对HTTP2协议证书的配置!)实现http2配置要么Jdk10的环境下配置相关证书可以实现对Http2的实现或者通过openssl实现证书结合apr的方式进行相应的配置。本例子,将通过配置Apr实现对http的访问以及http2的访问。
操作环境:linux Tomcat版本:8.5.33 JAVA运行环境:jdk10.0.2 Apr本地库版本:1.6.3
在http://apr.apache.org/download.cgi 下载Tomcat apr1.6.3可移植性运行库
需要的前置环境:
#yum -y install autoconf // 安装autoconf
#yum -y install libtool // 安装libtool
#yum -y install openssl openssl-devel // 安装openssl,默认版本为1.0.1
安装APR1.6.3
(1).# tar -zxvf apr-1.6.3.tar.gz
(2).# cd apr-1.6.3
(3).# ./configure --prefix=/home/bes/xs/apr1.6 //安装到指定的目录下
(4).# make
(5).# make install
安装Tomcat-native
(3) .# cd tomcat-native-1.2.17-src/native
(4) .# ./configure --with-apr=/home/bes/xs/apr1.6 --with-ssl=/home/bes/xs/openssl --prefix
=/home/bes/xs/apr1.6 //指定上面apr的安装目录
(5).# make
(6).# make install
添加配置参数:
在bin/catalina.sh中添加参数CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/home/bes/xs/apr/lib"
配置apr类库可能出现的问题:
1
解决方案:
进入apr1.6.3文件下的configure修改
$RM 改成$RM -f即可。
2.可能出现需要openssl >=1.0.2的问题
原因:yum install openssl openssl-devel由于centos 7 当前的yum 库只有1.0.1 的OpenSSL,所以需要手工安装1.0.2.
解决方案:yum remove openssl;添加openssl版本为1.0.2
下载地址:http://www.linuxfromscratch.org/blfs/view/cvs/postlfs/openssl10.html
配置openssl1.0.2步骤:
实现Apr访问:修改tomcat的配置
启动tomcat,查看日志:即成功配置Apr访问:192.168.9.164:8080
2.实现HTTP2访问的配置:
①配置openssl安全证书:
openssl genrsa -out server.key 2048
openssl rsa -in server.key -out server.key
Openssl req -new -x509 -key server.key -out ca.crt -days 3650
修改server.xml的配置,第一种基于Apr的实现:
第二种基于Nio的实现
重新启动tomcat,访问即可https://192.168.9.164:8443
3.如何查看协议是否成功是HTTP2请求:
①查看logs日志即可;操作步骤如下: