广告位联系
返回顶部
分享到

Tomcat下配置HTTPS的教程

Tomcat 来源:互联网 作者:佚名 发布时间:2024-09-27 21:58:39 人浏览
摘要

Tomcat核心功能还是作为Java的容器来运行Java后端代码,虽然内置了对HTTP请求的支持,但并不是最优选择,通常部署时,会在Tomcat前面加一个专用的Http服务器,例如Nginx或Apache 一、关键目录信息

Tomcat核心功能还是作为Java的容器来运行Java后端代码,虽然内置了对HTTP请求的支持,但并不是最优选择,通常部署时,会在Tomcat前面加一个专用的Http服务器,例如Nginx或Apache

一、关键目录信息

1.logs目录

(1)catalina.out

Tomcat运行过程中的终端输出,可以看到错误信息从而定位问题

当Tomcat启动之后占用了后台进程,其过程中遇到的报错或请求信息输出都会在本文件中存储

我们可以使用 tail -f catalina.out 进行实时查看文件信息变更

(2)localhost_access_log.2024-01-20.txt

该文件是Tomcat中的访问日志存储文件,其中存储的全都是外部访问的信息。在Linux上 Tomcat 8.0 默认是打开的,可以手工关闭,但不建议关闭,可用于取证溯源

image-20240121144441065

其中内容大致如图所示,记录了来访客户端的IP地址,以及该客户端都访问了那些内容

我们可以使用 tail -f localhost_access_log.2024-01-20.txt 来实时观测文件信息变更

image-20240121144854476

(3)/opt/apache-tomcat-8.0.53/conf/server.xml

该文件属于Tomcat的核心配置文件,其中当然也包含了日志配置信息

按下shift+G即可到达文本最后

image-20240121153215532

1

2

3

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

              prefix="localhost_access_log" suffix=".txt"

              pattern="%h %l %u %t &quot;%r&quot; %s %b" />

2./opt/apache-tomcat-8.0.53/conf/server.xml

这是Tomcat的核心配置文件

1

2

3

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

               connectionTimeout="20000"

               redirectPort="8443" />

这是http服务开启的端口配置,8080是http的默认端口,8443是https的默认端口

1

2

3

4

5

<!--

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"

               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"

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

    -->

配置 HTTPS 的基本信息,在互联网上,HTTP必须是80,HTTPS必须是443,这样才不需要再URL地址中加端口号,其他的都需要明确指定

1

2

<!-- Define an AJP 1.3 Connector on port 8009 -->

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

这是当在Tomcat前另加一个处理HTTP请求的Apache服务器时所用的配置

其中AJP表示用于将HTTP的请求需要Tomcat容器(Java)处理的部分,交给Java来处理

二、Tomcat配置HTTPS

1.基础

  • HTTP协议是全程明文,所以非常不安全
  • HTTP(应用层)+ TCP(传输层) 之间加了一层 SSL(TLS),将HTTP协议进行加密再传输
  • HTTPS的公网上传输:公钥+私钥进行加密,客户端或浏览器可信证书(CA机构颁发)
  • 安全和性能不可得兼
  • 局域网内部配置:(无法取得公网浏览器的信任,现实情况不可用)

(1)HTTP协议明文传输

全过程都是明文,没有一点秘密可言

image-20240121160125430

(2)HTTPS对称加密传输

一般情况下HTTPS协议使用的是对称密钥加密传输,当然,这个对称也不是言语上的对称

image-20240121160257940

事实上,客户端会生成一个随机秘钥,然后利用该随机秘钥对所要传输的数据进行加密,然后客户端利用自己的公钥对随机秘钥进行加密,然后client将加密后的随机秘钥和数据一起发送给服务器,服务器利用client的证书可以解开随机秘钥,然后再利用随机秘钥解开数据信息

(3)HTTPS非对称加密传输

image-20240121160610466

在这里我们将程度比作client,上海比作服务器,传输数据比作发快递

客户端对要发送的数据进行加密,发送给服务器。此时服务器无法解密,于是服务器自己也加密一次又发送给客户端。此时客户端对自己的加密解开然后再发送给服务器,此时数据上就只剩下上海自己的加密了

这只是大致的意思,具体信息还没学到…

2.配置

  • 进入jdk执行目录,如果应将jdk环境变量添加好了就可以不需用这一步

cd /usr/java/jdk/bin

  • 输入指令: keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "/opt/tomcat.keystore"

执行之后会出现以下信息,跟着问题做就行了

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

输入密钥库口令: 

再次输入新口令:

您的名字与姓氏是什么?

  [Unknown]:  ymq

您的组织单位名称是什么?

  [Unknown]:  youdian

您的组织名称是什么?

  [Unknown]:  youdian

您所在的城市或区域名称是什么?

  [Unknown]:  xian

您所在的省/市/自治区名称是什么?

  [Unknown]:  shanxi

该单位的双字母国家/地区代码是什么?

  [Unknown]:  cn

CN=ymq, OU=youdian, O=youdian, L=xian, ST=shanxi, C=cn是否正确?

  [否]:  y

 

输入 <tomcat> 的密钥口令

    (如果和密钥库口令相同, 按回车): 

再次输入新口令:

 

Warning:

JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore /opt/tomcat.keystore -destkeystore /opt/tomcat.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

image-20240121163824289

此时我们就可以看到该目录下多了一个证书文件

但是上述信息给出了warning,我们看看,他说要我们使用这条命令来迁移什么什么,ok

image-20240121164033872

也就是再执行一次,然后备份了一下证书文件

  • 进入 /opt/apache-tomcat-8.0.53/conf/server.xml

取消https配置的注释,并且在下面添上两个配置 keystorefile="/opt/tomcat.keystore" keystorePass="p-0p-0p-0" 使得完整信息如下

1

2

3

4

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"

               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS"

               keystorefile="/opt/tomcat.keystore" keystorePass="p-0p-0p-0" />

image-20240121164801434

变为

image-20240121164851604

  • 重启Tomcat

/opt/apache-tomcat-8.0.53/bin/shutdown.sh

/opt/apache-tomcat-8.0.53/bin/startup.sh

现在我们去尝试使用https访问woniusales

好家伙还是访问不了,想想问题,防火墙开没开,端口访问改没改

1

2

3

firewall-cmd --add-port=8443/tcp --permanent

firewall-cmd --add-service=https --permanent

systemctl restart firewalld

image-20240121165932441

虽然我们电脑上还是访问不了(大概率是因为现在浏览器都比较高级,非权威机构发行的证书是不被浏览器允许的),但是Tomcat上配置HTTPS基本流程就是这样

三、公网

1.公网需要一个固定的IP地址:购买一台云服务器,即可获得一个固定IP

2.建议最好注册一个域名,然后去通管局备案(否则不允许用域名访问)

3.将该域名解析到IP地址,即可实现域名访问,否则只能使用IP访问


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • Tomcat配置虚拟主机的实现
    在Tomcat中配置虚拟主机允许你通过不同的域名或IP地址访问同一台服务器上的不同Web应用。这通常通过编辑Tomcat的配置文件server.xml来实现。
  • Tomcat下配置HTTPS的教程

    Tomcat下配置HTTPS的教程
    Tomcat核心功能还是作为Java的容器来运行Java后端代码,虽然内置了对HTTP请求的支持,但并不是最优选择,通常部署时,会在Tomcat前面加一个
  • 修改TOMCAT的JVM虚拟机内存大小的三种方法

    修改TOMCAT的JVM虚拟机内存大小的三种方法
    修改TOMCAT的JVM虚拟机内存大小几种方式 Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。 经常会出
  • 替换或重写Tomcat内置的404页面的方法

    替换或重写Tomcat内置的404页面的方法
    替换成 准备一个Tomcat 可以到Tomcat官网下载对相应的版本,这个是Tomcat的官网地址:https://tomcat.apache.org/。之所以写这篇文章,是因为客户漏
  • Tomcat启动闪退常见问题18种解决方法
    1.端口冲突 Tomcat默认使用8080端口。如果该端口已被其他应用占用,Tomcat将无法启动。你可以更改Tomcat使用的端口号,或者关闭占用该端口的
  • 解决Tomcat报404问题大全(包括tomcat可以正常运行但

    解决Tomcat报404问题大全(包括tomcat可以正常运行但
    Tomcat报404问题解决 文章概览: 本文将解决一下问题: 问题有先后顺序 Tomcat未配置环境变量 IIs访问权限问题 端口占用问题 文件缺少问题(
  • IDEA中的Tomcat中文乱码问题

    IDEA中的Tomcat中文乱码问题
    写在前面:此方法亲测有效!!! 1、IDEA 2、VM options 加上这两行: 1 2 -Dfile.encoding=UTF-8 -Dconsole.encoding=UTF-8 3、IDEA启动程序的存放目录 找到这
  • 在Tomcat中启用虚拟线程特性的介绍

    在Tomcat中启用虚拟线程特性的介绍
    前提 趁着国庆前后阅读了虚拟线程相关的源码,写了一篇《虚拟线程 - VirtualThread源码透视》,里面介绍了虚拟线程的实现原理和使用示例。
  • 删除Tomcat webapps目录自带项目方式介绍
    1.webapps目录中的项目 本文将 %CATALINA_HOME% 目录称为tomcat目录。 在 Tomcat 8.0 的 tomcat/webapps 目录中,含有 5 个 Tomcat 自带的 Web 项目,如下所示
  • tomcat的webapps目录下的应用删除部署介绍
    1.tomcat9的webapps下应用的访问 tomcat9的server.xml文件中 Host下需要加一段: 1 Context docBase=/xxx/tomcat9/webapps/xxx path=/ reloadable=true/Context 改完后大致
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计