一、tomcat 默认端口

  1. <Server port="8005" shutdown="SHUTDOWN"> 远程停服务端口
  2. <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> 其中8080为HTTP端口,8443为默认HTTPS端口
  3. <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 8009为AJP端口,服务器之间的通信使用该端口

二、tomcat配置文件介绍

<Server port="8005" shutdown="SHUTDOWN">
<!--
属性说明port:指定一个端口,这个端口负责监听关闭Tomcat的请求shutdown:向以上端口发送的关闭服务器的命令字符串
--><Listener className="org.apache.catalina.core.AprLifecycleListener" /><Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" /><Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /><Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/><GlobalNamingResources><Environment name="simpleValue" type="java.lang.Integer" value="30"/><Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /></GlobalNamingResources>
<!--每个Service元素只能有一个Engine元素.元素处理在同一个<Service>中所有<Connector>元素接收到的客户请求--><!--
属性说明name:Service的名称
-->
<Service name="Catalina"><!--Connector元素:由Connector接口定义.<Connector>元素代表与客户程序实际交互的组件,它负责接收客户请求,以及向客户返回响应结果--><Connector port="80" maxHttpHeaderSize="8192"maxThreads="150" minSpareThreads="25" maxSpareThreads="75"enableLookups="false" redirectPort="8443" acceptCount="100"connectionTimeout="20000" disableUploadTimeout="true" /><!-- 属性说明port:服务器连接器的端口号,该连接器将在指定端口侦听来自客户端的请求。enableLookups:如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名若为false则不进行DNS查询,而是返回其ip地址。redirectPort:服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号。acceptCount:当所有可以使用的处理请求的线程都被用光时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,而返回Connection refused错误。connectionTimeout:等待超时的时间数(以毫秒为单位)。maxThreads:设定在监听端口的线程的最大数目,这个值也决定了服务器可以同时响应客户请求的最大数目.默认值为200。protocol:必须设定为AJP/1.3协议。address:如果服务器有两个以上IP地址,该属性可以设定端口监听的IP地址,默认情况下,端口会监听服务器上所有IP地址。minProcessors:服务器启动时创建的处理请求的线程数,每个请求由一个线程负责。maxProcessors:最多可以创建的处理请求的线程数。minSpareThreads:最小备用线程 。maxSpareThreads:最大备用线程。debug:日志等级。disableUploadTimeout:禁用上传超时,主要用于大数据上传时。--><Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" /><!-- 负责和其他HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时就需要用到这个连接器。 --><Engine name="Catalina" defaultHost="localhost"><!-- 属性说明name:对应$CATALINA_HOME/config/Catalina中的Catalina defaultHost:对应Host元素中的name属性,也就是和$CATALINA_HOME/config/Catalina/localhost中的localhost 缺省的处理请求的虚拟主机名,它至少与其中的一个Host元素的name属性值是一样的debug:日志等级--><Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/><!-- 由Host接口定义.一个Engine元素可以包含多个<Host>元素。每个<Host>的元素定义了一个虚拟主机.它包含了一个或多个Web应用。--><Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false"><!-- 属性说明name:在此例中一直被强调为$CATALINA_HOME/config/Catalina/localhost中的localhost虚拟主机名debug:是日志的调试等级 appBase:默认的应用路径,也就是把应用放在一个目录下,并在autoDeploy为true的情况下,可自动部署应用此路径相对于$CATALINA_HOME/ (web applications的基本目录)unpackWARs:设置为true,在Web应用为*.war是,解压此WAR文件. 如果为true,则tomcat会自动将WAR文件解压;否则不解压,直接从WAR文件中运行应用程序.autoDeploy:默认为true,表示如果有新的WEB应用放入appBase 并且Tomcat在运行的情况下,自动载入应用 --><Context path="/demm" docBase="E:\\projects\\demm\\WebRoot" debug="0" reloadable="true" > </Context><!-- 属性说明path:访问的URI,如:http://localhost/是我的应用的根目录,访问此应用将用:http://localhost/demm进行操作,此元素必须,表示此web application的URL的前缀,用来匹配一个Context。请求的URL形式为http://localhost:8080/path/*docBase:WEB应用的目录,此目录必须符合Java WEB应用的规范,web application的文件存放路径或者是WAR文件存放路径。debug:日志等级 reloadable:是否在程序有改动时重新载入,设置成true会影响性能,但可自动载入修改后的文件,如果为true,则Tomcat将支持热部署,会自动检测web application的/WEB-INF/lib和/WEB-INF/classes目录的变化,自动装载新的JSP和Servlet,我们可以在不重起Tomcat的情况下改变web application--></Host></Engine></Service>
</Server>

三、创建tomcat证书

https协议需要证书,为了开发去CA买证书是浪费,使用jdk自带的keytool工具做一个开发测试用足够。详细可参考 jdk8的keytool的官方文档:https://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html#CHDBGFHE。

HTTP重定向至HTTPS也就是将80端口重定向至443端口

3.1利用JDK自带的keytool工具来生成证书:

3.1.1. 在jdk的安装目录\bin\keytool.exe下打开命令行提示符

2. 在命令行中输入生成keystore的命令,新生成一个密钥库:

keytool -genkeypair -alias oycsso -keyalg RSA -validity 36500 -storepass 123456 -keystore E:/oycsso .keystore -v
  • -alias "oycsso":证书项的名字,必填项
  • -keyalg RSA:证书签名算法,tomcat建议RSA
  • -validity 36500:证书有效期,36500天,即100年
  • -storepass 123456:密钥库密码,也就是等下要生成的oycsso.keystore的访问密码,妥善保管
  • -keystore "E:\oycsso.keystore":要生成的文件的位置,存储在E盘根目录
  • -v:该选项会显示比较详细的信息

以上命令将生产一对非对称密钥和自我签名的证书E:\oycsso.keystore

注意:“名字与姓氏”应该是域名,输成了姓名,和真正运行的时候域名不符,会出问题

3.2配置tomcat服务器

定位到tomcat服务器的安装目录, 找到conf下的server.xml文件

6、修改tomcat配置文件

<!--老版本tomcat的配置,在tomcat8下测试成功-->
<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="443"/>
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"maxThreads="150" SSLEnabled="true" scheme="https" secure="true"clientAuth="false" sslProtocol="TLS" keystoreFile="/conf/oycsso.keystore"keystorePass="123456"/>

注意:以上配置是老版本tomcat的配置,从tomcat8.5开始tomcat更改了配置形式,如上配置估计在tomcat10的时候会完全废弃,在tomcat9.0下测试成功的配置如下:

<!--新版本tomcat的配置,在tomcat9下测试成功-->
<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="443" />
<Connector port="443" protocol="org.apache.coyote.http11.Http11Nio2Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true"><SSLHostConfig><Certificate certificateKeystoreFile="conf/oycsso.keystore" certificateKeystorePassword="123456" /></SSLHostConfig>
</Connector>

要修改的配置文件是tomcat的server.xml文件。仔细看上面的配置,第一个Connector是默认就有的,这里只是把8080端口改成了公认的80端口,把8443端口改成了公认的443端口。第二个Connector默认是注释掉的,搜索8443就能找到,直接把上述第二个Connector粘贴到server.xml中第一个Connector的下面,方便管理。keystoreFile=”/conf/oycsso.keystore”就是刚才copy的文件的位置,可以自己改到其他位置。keystorePass=”123456”就是刚才创建密钥库时使用的口令。

3.3 测试

四、chrome提示ERR_SSL_VERSION_OR_CIPHER_MISMATCH

今天配完tomcat ssl后,发现页面无法访问。chrome提示以下:

解决方案,在ssl的那个connector配置指定加密协议集:

ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,     TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA"

具体connector配置如下:

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"maxThreads="150" scheme="https" secure="true" URIEncoding="UTF-8" keystoreFile="conf/chinanetcenter.tomcat"  keystorePass="2013111"clientAuth="false" sslProtocol="TLS" keystoreType="PKCS12" ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,     TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA"compression="on" compressionMinSize="50" noCompressionUserAgents="gozilla, traviata"compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"/>

配置完后,就可以访问页面了。

五、导出数字证书

有了数字证书(尽管没有被CA认证,但是可以先用着),我们就需要将数字证书导出,格式为*.cer,命令参数如下:

根据刚才生成的keystore证书,我们导出cer证书,实现如下:

keytool -exportcert -alias oycsso -keystore E:/oycsso.keystore -file E:/oycsso.cer -rfc

在这里我们可以使用 -storepass参数指定证书所使用的密码

keytool -exportcert -alias oycsso -keystore d:/oycsso.keystore -file d:/oycsso.cer -rfc -storepass 123456

生成了数字证书,我们可以使用-printcert命令打印出证书的相关信息:

到此为止,我们使用keytool生成了两个数字证书,一个是keystore格式的,一个cer格式的,他们都没有经过CA机构认证,没有任何的法律效力,但是可以正常使用的,比如,把keystore格式的证书导入Tomcat中,cer格式的证书导入浏览器中,或是使用cer证书构建Java Https请求,这都是Https单项认证。

六、构建CA签发证书

如果哪一天,我们需要一个CA机构认证过的数字证书(产品上线的话就会了,总不能让客户手动往浏览器添加cer证书吧),我们就需要生成CA数字证书签发申请(CSR),该证书格式为*.csr

有关生成证书请求的命令参数如下:

在这里我们依旧依靠keystore证书来生乘csr

keytool -certreq -alias oycsso -keystore E:/oycsso.keystore -file E:/oycsso.csr -v


还是比较人性化的,还有提示。

七、导入证书信任库

获得CA签发的数字证书后,我们需要将其导入到信任库,使用的命令为-importcert,参数如下:

具体实现如下:

keytool -importcert -trustcacerts -alias oycsso -file E:/oycsso.cer -keystore E:/oycsso.keystore

查看证书命令

keytool -list -alias oycsso -keystore E:/oycsso.keystore

tomcat端口介绍以及配置启用https相关推荐

  1. EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器启用https服务申请免费证书...

    背景分析 目前想在 web 上使用 HTTPS 的话, 你需要获得一个证书文件, 该证书由一个受浏览器信任的公司所签署. 一旦你获得了它, 你就在你的 web 服务器上指定其所在的位置, 以及与你关联 ...

  2. Tomcat启用HTTPS协议配置过程

    Article1较为简洁,Article2较为详细,测试可行. Article1 概念简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问 ...

  3. 在 Apache Tomcat 服务器上启用 HTTPS 或 SSL 正确方式的分步指南 – 端口 8443

    我开始使用Apache Tomcat已经快 12 年了.我相信当我做我的一年级项目时,它是在 Tomcat 版本上1.x.现在它已经在 version 上8.0.在我的日常工作生活中,我大部分时间都在 ...

  4. Tomcat介绍和安装,以及tomcat的虚拟主机配置

    为什么Tomcat火了 Tomcat介绍 Tomcat核心组件 简述Tomcat处理请求过程 Tomcat目录机构 Tomcat安装 虚拟主机配置 Tomcat介绍 ●自从JSP发布之后,推出了各式各 ...

  5. 端口安全原理介绍及配置命令

    [欢迎关注微信公众号:厦门微思网络] 微思网络(官网):https://www.xmws.cn/ 流控与交流机访问控制 可在端口上配置端口安全技术,使该端口只允许特定的设备访问. 端口安全技术通过MA ...

  6. apache配置证书后 tomcat无法访问_给你的项目配置个https吧

    1.申请证书 这里我选择的是阿里云的个人免费的证书 因为使用的是内置的Tomcat,所以下载Tomcat类型的 2.配置项目 将证书XXXX.pfx文件放到项目的resources目录,接着修改app ...

  7. JSP→JavaWeb简介、Tomcat服务器安装启动测试目录、Tomcat手动创建项目、开发工具MyEclipse与Eclipse配置环境、MyEclipse创建Web程序目录、修改Tomcat端口

    动态网页的动态指的是能与用户进行交互 Tomcat官网http://tomcat.apache.org/ Tomcat服务器安装启动测试目录 Tomcat手动创建项目 修改服务器配置生效需要重启!重启 ...

  8. Tengine(Nginx)配置SSL(https),应用服务器(Tomcat)无需配置

    2019独角兽企业重金招聘Python工程师标准>>> 要点:如果系统是内部用,可以通过openssl生成证书,只是访问的时候,浏览器会提示不信任, 1.生成证书,创建存放证书的目录 ...

  9. Tomcat介绍及配置

    web服务器的作用: 当接收的请求是动态请求,则会将请求给web容器拼凑生成代码,返回web服务器. 一般在平时说的"买服务器"是指一台专门用于安装Web服务器的计算机,web服务 ...

最新文章

  1. 赠书 | Python 预测股票价格,竟然这么简单
  2. SQL语句中between and 范围
  3. SQL Server 2005无法输入中文的解决方案
  4. SQL注入(SQL Injection)
  5. 这样学习JAVA 基础才能又快又稳!
  6. 给大家推荐几位顶级Go语言专家写的公众号
  7. python 系统编程
  8. Java 密码扩展无限制权限策略文件[转]
  9. 进程同步与互斥:POSIX有名信号量
  10. 十年肺腑之言:说说技术总监的“三板斧”
  11. 通过JS改变框架的src
  12. RV1109人脸识别门禁闸机主板方案
  13. http://www.jobui.com/mianshiti/it/java/6782/
  14. 植物大战僵尸存档关卡和金币修改
  15. 【WIN32之旅】WINDOWS错误处理与参考(四)
  16. 学习大数据需要什么语言基础
  17. (附源码)springboot万花筒 毕业设计 345600
  18. 项目开发技术点、困难点总结——2020-2021年
  19. SICK LMS 111激光雷达数据读取与分析
  20. 智汀智能家居普及篇——智能家居必备的功能控制系统

热门文章

  1. Arcgis Engine 报错:异常来自HRESULT:0x80040228
  2. AtCoder Regular Contest 107----B - Quadruple(数学分析)
  3. win7文件夹没有共享服务器,win7系统文件夹选项中没有共享选项页怎么办
  4. EN 622-1 纤维板规范第一部分:一般要求
  5. 《一些关于做人、做生意的道理》
  6. 升级IE6提示“以前的安装有尚未完成的操作,需重新启动”
  7. Android 热更新框架
  8. Hermite 曲线
  9. python词云展示库——Wordcloud的安装
  10. IOS下的屏幕相关和AppIcon尺寸以及LaunchImage 简单介绍