Tomcat配置SSL证书遇到的各种问题

来源:互联网 发布:建设银行软件下载 编辑:程序博客网 时间:2024/05/21 15:41

今天决定把之前配置SSL证书遇到的各种问题记录下来
一,前往阿里云下载免费版SSL证书(具体可以百度)
二,参照下载时SSL证书配置进行配置(阿里云提供有Tomcat配置的视频)
视频连接:https://help.aliyun.com/video_detail/54217.html
1.配置Tomcat
没有按照视频来做,直接在Tomcat目录下新建cret文件夹
这里写图片描述
将下载下来的文件放入cret文件中
这里写图片描述
2.打开Tomcat/config/server.xml文件,按照证书安装提示修改server.xml文件
这里写图片描述
其中,keystoreFile为pfx文件路径,keystorePass为pfx-password.txt中保存的密码
配置成功后开始访问web页面,结果提示输入用户名和密码,查询资料发现,Tomcat配置ssl证书时要开启443端口,但是我们的服务器上安装了SVN,SVN使用的也是443端口,两者产生了冲突,因此关掉SVN服务,再次访问web页面,不再提示输入用户名和密码

三、由于之前的域名同事觉得不爽,重新配置新的域名
配置新的域名后,原80端口和现443端口同时开启,访问程序出错(至今没搞明白是什么原因)
报错:outofmemoryerror thrown from the uncaughtexceptionhandler in thread
没有解决这个问题,于是咨询了前辈,前辈建议我部署两个Tomcat,将两个端口分开来,一个Tomcat用原域名,80端口,另一个Tomcat用新域名443端口

四、在同一个服务器上部署两个Tomcat
Windows环境下在同一台服务器部署两个Tomcat
1.使用非安装版的Tomcat,可以直接复制上一个Tomcat,
2.第一个Tomcat的配置保持不变,增加环境变量CATALINA_HOME2,值为新的tomcat的地址;增加环境变量CATALINA_BASE2,值为新的tomcat的地址。
3.修改新的tomcat中的startup.bat,把其中的CATALINA_HOME改为CATALINA_HOME2。 【可以查找替换记得挨个检查一遍】
4.修改新的tomcat中的catalina.bat,把其中的CATALINA_HOME改为CATALINA_HOME2,CATALINA_BASE改为CATALINA_BASE2。
5.修改conf/server.xml文件:

<Server port="8005" shutdown="SHUTDOWN">修改端口号  <Connector port="8080" maxHttpHeaderSize="8192"    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"    enableLookups="false" redirectPort="8443" acceptCount="100"    connectionTimeout="20000" disableUploadTimeout="true" /> 修改端口号<Connector port="8009"    enableLookups="false" redirectPort="8443" protocol="AJP/1.3" /> 修改端口号

参考:http://www.cnblogs.com/zhangdashao/p/5395888.html
五、重新启动项目后遇到的几个错误
1.java.lang.OutOfMemoryError: PermGen space异常处理
解决方法: 手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.sh在

echo "Using CATALINA_BASE:   $CATALINA_BASE"

上面加入以下行:

JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m

2.Error processing request错误

2017-6-3 11:29:32 org.apache.coyote.http11.AbstractHttp11Processor process严重: Error processing requestjava.lang.NullPointerException        at org.apache.tomcat.util.buf.CharChunk.append(CharChunk.java:355)        at org.apache.tomcat.util.http.mapper.Mapper.map(Mapper.java:673)        at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:646)        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:402)        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)        at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1813)        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)        at java.lang.Thread.run(Thread.java:619)

解决办法:
是因为tomcat在server.xml里配置的有问题,即使域名配置了,也必须要有

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true"></Host>

这个localhost配置,不然就会报你那个错,因为这个request请求是很不寻常的才会出现这个错,你配置一个localhst就可以了

3.log重命名失败

第二天打开服务器时发现Tomcat报错

这里写图片描述

查询发现,只有第二个Tomcat报了这个错误,第一个Tomcat重命名成功,在网上查找很多方法,大多建议修改log4j源码,于是决定更换log4j.jar,具体jar文件可上网搜索

更换过后,第二天重命名成功

4.定时器执行定时任务迁移数据时产生错误

项目试用了springTask定时任务,之前只有一个Tomcat时从未产生定时器错误,周一时发现每周一凌晨3点执行的定时任务失败,查看数据库却发现数据没有损失并且全部迁移成功,于是开始在测试环境进行测试,测试发现定时器产生了两次实例
这里写图片描述
查看Tomcat运行
修改Tomcat/conf/server.xml文件,修改节点Host,将appBase属性由默认的“webapps”设置为空(”“)即可,如下所示:

<Host appBase="" autoDeploy="true" name="localhost" unpackWARs="true"></Host>

由于我的web应用程序默认都是放在webapps这个目录下的,其中已经配置了一个appBase="webapps"如果不把“webapps“去掉,这里会实例化一次,在另一个appBase="webapps"中又会被实例化一次

修改完后再次测试成功

这里写图片描述

原创粉丝点击