Tomcat NIO, APR 模式下SSL 的配置以及如果配置Http 到 Https的跳转

一般情况下,Tomcat都只是作为请求处理器而处在web 服务器例如Apache, ngnix之后的,但是对于小型的应用用让Tomcat 作为前端服务器也无妨。这里对Tomcat的一些配置最一下总结。

NIO 模式下的SSL配置:

步骤1 建立 keysore:

%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA

如果是第一次建立需要配置,可以还需要为keytool 设置进入密码。 通过这个命令生成的keystore包含了一个自动生成的key和自我签名的证书。

如果你不想要keytool, 而是想用openssl 来生成证书也是可以的。你需要首先生成一个key文件

openssl genrsa -des3 -out server.key 4096

然后用以下根据key生成的一个csr文件

openssl req -config /path/to/openssl.cnf -new -key server.key -out server.csr

注意-config 后面是openssl的配置文件路径,一般是在openssl 安装路径中。

最后我们生成certificate

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

当然你也可以把你的key,和csr文件发给第三方认证组织例如verisign,又他们生成certificate文件发给你。

有了我们的证书和key文件如何把它们导入到我们的keystore里面去呢?思路是首先生成一个pkcs12文件,然后导入或者转化为keystore文件

openssl pkcs12 -export -in host.crt -inkey host.key > host.p12
keytool -importkeystore -srckeystore host.p12 -destkeystore host.jks -srcstoretype pkcs12

有了keystore 文件我们只需要在Tomcat的server.xml 文件加入一下配置即可

<Connector

protocol="org.apache.coyote.http11.Http11NioProtocol"

port="443" maxThreads="200"

scheme="https" secure="true" SSLEnabled="true"

keystoreFile="-path/to/keystore" keystorePass="xxxxxxxxx"

clientAuth="false" sslProtocol="TLS"/>

如果你有8443 端口的配置,那么请覆盖他。protocol 请注 用 org.apache.coyote.http11.Http11NioProtocol 这样才会使用对8443端口的链接用nio模式处理。

APR 模式下的SSL配置:

APR 模式要相对简单一些, 有了上面openssl 生成的key文件和crt文件我们直接用加入配置:

<Connector

protocol="org.apache.coyote.http11.Http11AprProtocol"

port="443" maxThreads="200"

scheme="https" secure="true" SSLEnabled="true"

SSLCertificateFile="c://ssl/server.crt"

SSLCertificateKeyFile="c://ssl/server.key"

SSLPassword="in4monitor"

SSLVerifyClient="false" SSLProtocol="TLSv1"/>

protocol 请注 用 org.apache.coyote.http11.Http11AprProtocol 这样才会使用对8443端口的链接用apr模式处理。 APR 配置在某些机器上会出现 fopen 函数找不到的错误,还没有找到原因,如果有知道的解决方法的朋友就告知。

Http 转 Https

由于我们的Tomcat当作了前端web服务器,那么默认的链接端口8080 需要修改为80,且redirectPort需要变为443

<Connector port="80" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="443" />

时间: 2024-10-22 23:59:48

Tomcat NIO, APR 模式下SSL 的配置以及如果配置Http 到 Https的跳转的相关文章

tomcat bio nio apr 模式性能测试

转自:tomcat bio nio apr 模式性能测试与个人看法 11.11活动当天,服务器负载过大,导致部分页面出现了不可访问的状态.那后来主管就要求调优了,下面是tomcat bio.nio.apr模式以及后来自己测试的一些性能结果. 原理方面的资料都是从网上找的,并且把多个地方的整理到了一起,觉得很有意义.(后面对tomcat默认页面测试的数据是自己测出来的),tomcat 的三种模式如果用对了场合,性能绝对有大幅度的提升.当然调优也并不只在这一个方面,还有内存(堆内存.非堆内存.新生代

apache + tomcat 负载均衡模式下 getLocalAddr() 为null的解决办法

在apache + tomcat 负载均衡模式下,通过request.getLocalAddr()无法获取服务器端的ip地址,返回值为null的问题,查找了下,百度里没有有价值的回答,到官方网站上查找了下,说是: The AJP protocol only passes the web server host name and port. It does not pass the IP address. Therefore, getLocalName() will return whatever

IIS7部署报错 500.22错误 检查到这集成托管模式下不使用的ASP.NET配置

2014-08-08 公司的一个项目,环境为: .Net 4.0 + MVC3,部署在Windows Server 2003R2 IIS6.0上面运行正常, 迁移到新服务器Windows Server 2008R2,部署在 IIS7.0上, 应用程序池中,托管管道模式中选中了“集成”模式,如下图: 其他配置如下: 配置完成后,访问出错报错, 最后检查出了原因:该项目中的web.config配置文件不适合IIS7.0. 于是将应用程序池的管道模式选择为“经典”模式 再次访问一切正常. 问题的根本原

开启tomcat的apr模式,并利用redis做tomcat7的session的共享。

更新系统组件 yum -y install readline* xmlto kernel-devel yum* screen vim* psmisc wget lrzsz pcre-devel libtidy libtidy-devel iptraf sysstat libevent libevent-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker tar rrdtool ntp* dos2unix setup* net-snmp-uti

02 VM下仅本机模式下与宿主机的网络配置

一.仅本机模式下的网络配置 1.Windows能ping通centOS 2 centOS能够ping通Windows 3 centOS能够通过Windows的网络共享,访问Internet网络 大部分新手都在很多网络配置上花了很多时间去研究,网上也有教程,但是上面的不尽详细 第一步:配置VM网络 1 打开VM网络配置,这里可以看出,仅本机模式下我们用的是VMnet1 查看"DPCH设置",可以看到以下信息 2 在windows下,win+R输入cmd打开命令操作行,输入ipconfig

工作在服务器模式下的rsync的安装、配置与使用22

rsync命令可以用于在本地系统中复制文件(如同cp命令),也可以在本地和远程主机之间复制文件(如同scp命令),还可以工作在服务器模式下(使用功能上类似FTP.SAMBA等).本文主要介绍rsync在服务器模式下的配置和应用举例. rsync命令常用选项 -n: 仅做执行测试,不做实际动作 -v, --verbose: 输出详细执行信息 -q, --quiet: 静默模式 -c, --checksum: 开启校验功能,强制对文件传输进行校验 -r, --recursive:递归复制 -a, -

tomcat在Debug模式下无法启动解决办法

环境:eclipse,JDK1.6,tomcat6.0 问题:在server中正常启动tomcat是没问题的,javaweb项目也可正常访问,使用debug模式启动的话速度特别慢(好像一直处于那种启动状态见图),而且等一会就会提示超时并自动停止tomcat服务.也在网上查了一些方案,修改启动时间,修改tomcat内存都于事无补,报错如下图: 后来找了一些资料,这个问题可能是由于eclipse和tomcat的交互而产生的,在以debug模式启动tomcat时,发生了读取文件错误,eclipse自动

tomcat nio apr

NIO[[email protected] ~]# vim /usr/local/tomcat9/conf/server.xml<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443" compression="on"

Tomcat Connector(BIO, NIO, APR)三种运行模式(转)

Tomcat支持三种接收请求的处理方式:BIO.NIO.APR . BIO 阻塞式I/O操作即使用的是传统 I/O操作,Tomcat7以下版本默认情况下是以BIO模式运行的,由于每个请求都要创建一个线程来处理,线程开销较大,不能处理高并发的场景,在三种模式中性能也最低. 配置如下(tomcat安装目录下的/conf/server.xml): <Connector port="8080" protocol="HTTP/1.1" connectionTimeout