tomcat常用操作
Easul Lv6

配置HTTPS

这里使用的是tomcat8

折叠代码块XML 复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- 
下载好证书,不是jks的就转一下格式
然后放到tomcat的cert目录下。没有就创建一个
然后修改conf/server.xml
-->
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />
<Connector port="443" protocol="org.apache.coyote.http11.Http11Nio2Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="cert/tomcat.jks" certificateKeyAlias="1"
certificateKeystorePassword="123456" type="RSA" />
</SSLHostConfig>
</Connector>
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

ConnectorcertificateKeyAliastype可以使用下边的命令在cmd中查看。使用的是javakeytool工具

折叠代码块BASH 复制代码
1
2
# tomcat.jks是证书名称
keytool -v -list -keystore tomcat.jks

运行tomcat后,如果有这个提示
The AJP Connector is configured with secretRequired="true" but the secret attribute is either null or "". This combination is not valid.
那么就在AJP/1.3中再插入一个属性secretRequired=""即可

tomcat8.x配置HTTPS

server.xml解析

折叠代码块XML 复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<Server port="8005" shutdown="SHUTDOWN">  
<!--
Services是一组engine的集合, 包括线程池Executor和连接器Connector的定义
-->
<Service name="Catalina">
<!--
默认一个Connector一个线程池, 若想多个Connector共享一个线程池, 则可以设置该标签
-->
<Executor ...... />
<Connector ...... />
<!--
一个Connector是一个对外界开放的端口, 常用属性有
protocol, 值为
org.apache.coyote.http11.Http11NioProtocol:NIO连接器, 并发性能良好
org.apache.coyote.http11.Http11AprProtocol:APR连接器, 建议在生产环境使用
redirectPort, 用于重定向端口
SSLEnabled: 是否使用SSL传输
executor: 指定连接器线程池名称
-->
<Connector ...... />
<!--
Engine看作是虚拟主机的一个集合
defaultHost指的是当指向该域名指向该服务器, 该服务器没有对应域名的虚拟主机, 默认返回的虚拟主机
这里默认返回域名为localhost的主机
-->
<Engine name="Catalina" defaultHost="localhost">
<!--
一个host一个虚拟主机, 如name="www.a.com"对应一个host,name="www.b.com"对应一个host
其路径下的每个文件夹被看做一个虚拟主机下的一个应用
name存放虚拟主机域名, 也可以直接写ip
appBase指向虚拟主机根目录, 可以写绝对路径, 也可以写相对于tomcat根路径的相对路径
-->
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<!--
Alias用来定义该虚拟主机的其他域名
-->
<Alias>doc.a.com</Alias>
<!--
一个context一个应用, docBase指向应用的目录,
可以不在appBase下, 需要指定绝对路径
reloadable为true, 则文件有变化后项目自动重新加载
-->
<Context docBase="/home/project/" reloadable="true" />
<!--
Value用于定义日志存储位置即文件名
-->
<Valve ....../>
</Host>
</Engine>
</Service>
</Server>

参考

 评论
来发评论吧~
Powered By Valine
v1.5.2