Windows中的Tomcat服务器安装证书并设置强制https访问

news2024/12/29 13:08:18

官网参考

阿里云

华为云

获取证书

自己生成证书

这边介绍一个生产开发环境证书的方式:使用 Java 提供的工具:keytool

keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "d:\tomcat.keystore" 

在这里插入图片描述

Tomcat服务器支持安装PFX格式和JKS两种格式的证书,这里选择安装PFX格式证书。

从阿里/华为获取证书

解压已保存到本地的Tomcat证书文件。
在这里插入图片描述

解压后您将看到文件夹中有以下文件:
证书文件(domain_name.pfx)
密码文件(pfx-password.txt)

PFX格式的证书

拷贝证书文件

在Tomcat安装目录的conf目录下,创建 cert 目录,将解压的证书和密码文件拷贝到cert目录下

修改tomcat配置

修改配置文件server.xml(路径:Tomcat安装目录/conf/server.xml)

修改原本的80端口

原来的

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

修改后的

<Connector port="80"
	protocol="HTTP/1.1"
	connectionTimeout="20000"
	redirectPort="443"
	maxPostSize="-1" />

网址访问的默认端口号是 80 端口,访问时就不需要加8080端口了
HTTPS 的默认端口是 443 端口
redirectPort 是转发端口,修改成 443 后能够实现输入网址后自动启用HTTPS,来自80端口的请求都跳转至443端口

方法一

设置https

在这里插入图片描述
在注释的下方增加下面代码

<Connector port="443"
	protocol="org.apache.coyote.http11.Http11NioProtocol"
	maxThreads="1000"
	acceptCount="1000"
	SSLEnabled="true"
	scheme="https"
	secure="true"
	clientAuth="false"
	sslProtocol="TLS" 
	keystoreFile="conf/cert/domain_name.pfx"
	keystoreType="PKCS12"
	keystorePass="pfx-password.txt中的密码"
	ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256" />

在这里插入图片描述

方法二

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate 
        certificateKeystoreFile="C:/apache-tomcat-8.5.60/cert/【证书文件(.pfx结尾)】"
        certificateKeystorePassword="证书文件中的密码"
        certificateKeystoreType="PKCS12"/>
    </SSLHostConfig>
</Connector>

在这里插入图片描述

使用JKS证书

拷贝证书文件

在Tomcat安装目录的conf目录下,创建 cert 目录,将解压的证书和密码文件拷贝到cert目录下

修改tomcat配置

打开server.xml,添加ssl连接器,在8080端口连接器下面添加如下配置:

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    keystoreFile="conf/cert//YourDomain.jks"
    keystorePass="SSLPass"
    clientAuth="false" sslProtocol="TLS" />
注意:
    keystoreFile :证书存放目录,可以写绝对路径或Tomcat相对路径;
    keystorePass:证书私钥密码;

修改HOST配置

    <Engine name="Catalina" defaultHost="localhost">   
	## 这里指定的localhost是默认HOST的名称,修改为证书绑定的域名即可

      <!--For clustering, please take a look at documentation at:
          /docs/cluster-howto.html  (simple how to)
          /docs/config/cluster.html (reference documentation) -->
      <!--
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
      -->

      <!-- Use the LockOutRealm to prevent attempts to guess user passwords
           via a brute-force attack -->
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <!-- This Realm uses the UserDatabase configured in the global JNDI
             resources under the key "UserDatabase".  Any edits
             that are performed against this UserDatabase are immediately
             available for use by the Realm.  -->
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost"  appBase="webapps"  
		### 将这里的localhost修改Wie刚才添加解析的域名即可,且必须与证书的通用名称保持一致
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />

      </Host>

这里只需要将里两个localhost修改为证书绑定域名即可,也就是是将该域名与此HOST绑定;

开启HTTP强制跳转HTTPS

配置Tomcat安装目录/conf/web.xml文件

找到<welcome-file-list>

在同级下增加下面代码

<login-config>  
    <!-- Authorization setting for SSL -->  
    <auth-method>CLIENT-CERT</auth-method>  
    <realm-name>Client Cert Users-only Area</realm-name>  
</login-config>  
<security-constraint>  
    <!-- Authorization setting for SSL -->  
    <web-resource-collection >  
        <web-resource-name>SSL</web-resource-name> #请将该参数替换为您的项目名称。
        <url-pattern>/*</url-pattern>  
    </web-resource-collection>  
    <user-data-constraint>  
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>  
    </user-data-constraint>  
</security-constraint>

其他设置

启用多个服务

你有一个服务,希望通过 域名/music 的方式访问
实现过程

  1. webapps 目录下新建 music 目录,将服务文件放进去
  2. 配置 server.xml

配置内容:
定位到文件末尾,找到如下内容:

<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" />

在该文件下,新增配置:

<Content path="/music/" docBase="C:\\apache-tomcat-8.5.60\\webapps\\music" reloadable="true" />

参数描述:

  • path: 通过对应网址访问该服务。 (例:https:xxx.com/music)
  • docBase: 提供对应服务的文件所在的绝对路径。
  • reloadable: 自动重载该服务。 (启用后,更改该文件不需要重启Tomcat)

tomcat配置支持ipv6

注意:tomcat6 不支持监听ipv6

想让你的tomcat即可以使用IPV4又可以使用IPV6访问,需要进行如下配置,修改tomcat配置文件\conf\server.xml
只需加上 address="[::]" 即可

<Connector port="8080" protocol="HTTP/1.1"
    ...
    redirectPort="8443" />
    
修改后的

<Connector port="8080" protocol="HTTP/1.1"
	address="[::]"
    ...
    redirectPort="8443" />

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/566777.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Golang变量初始

Golang变量初始 采用文章 本章使用go练习工具 https://tour.go-zh.org/welcome/13.1 为什么需要变量 3.1.1一个程序就是一个世界 3.1.2变量是程序的基本组成单位 不论是使用哪种高级程序语言编写程序,变量都是其程序的基本组成单位&#xff0c;比如一个示意图 3.2 变量的介…

专门用于管理企业与自己客户之间所有信息的客户管理系统

一、开源项目简介 关于 NXCRM NXCRM 是一套基于 Laravel 的 CRM 应用程序。它包含了一个管理中心&#xff0c;可以管理用户、客户、产品、订单、商机&#xff0c;合同&#xff0c;收款&#xff0c;附件&#xff0c;联系人&#xff0c;跟进动态&#xff0c;发票&#xff0c;业…

近年GDC服务器分享合集(二): 《太空工程师》中基于预测物理的多人游戏

客户端-服务端之间的位置同步一直是游戏开发中的一道难题&#xff0c;特别是还涉及到复杂的物理运动时。对于这个话题&#xff0c;来自《太空工程师》游戏的工程师在GDC 2023上为我们带来了他们的分享——《《太空工程师》中基于预测物理的多人游戏》&#xff08;Predicted Phy…

在 openEuler 22.03 上安装 KubeSphere 实战教程

作者&#xff1a;老 Z&#xff0c;中电信数智科技有限公司山东分公司运维架构师&#xff0c;云原生爱好者&#xff0c;目前专注于云原生运维&#xff0c;云原生领域技术栈涉及 Kubernetes、KubeSphere、DevOps、OpenStack、Ansible 等。 前言 导图 知识点 定级&#xff1a;入…

域泛化(Domain Generalization)相关知识学习

文章目录 一、域泛化综述1&#xff09;Domain定义2&#xff09;Domain Generalization&#xff08;DG&#xff09;定义3&#xff09;一些相关领域与DG的区别4&#xff09;领域泛化的方法表示学习领域不变表示学习①基于核的方法&#xff08; kernel-based methods&#xff09;②…

python自动化(一)基础能力:9.yaml文件详解

一、什么是yaml文件 yaml 是专门用来写配置文件的语言——可以用例作为自动化框架的配置文件yaml文件其实也是一种配置文件类型&#xff0c;后缀名是.yaml或.yml都可以个人认为比yaml比json格式更方便 二、yaml语法规则 YAML 语言&#xff08;发音 /ˈjməl/ &#xff09;的设…

电力应急指挥需要哪些终端设备?

在电力应急现场&#xff0c;我们可能会面临很多复杂的情况&#xff0c;当发生电力险情时&#xff0c;现场可能会面临断电、断网、无路等问题。此时应急指挥中心很难第一时间掌控现场情况&#xff0c;指挥中心无法快速做出反应&#xff0c;无法对现场情况做出高效的应急处置决定…

Spring Boot源码中设计模式应用浅析

文章目录 1. 工厂模式1.1 详解 DefaultListableBeanFactory 2. 单例模式1.1 详解 DefaultSingletonBeanRegistry 3. 观察者模式4. 适配器模式5. 模板方法模式 背景&#xff1a;大家好&#xff0c;我是冰点。最近有网友反馈&#xff0c;他在面试过程中被面试官问到&#xff0c;设…

NVDIA GPU参数列表: 3090,4090, A40, A30,V100, A100, A800性能参数

GeForce RTX 4090 GeForce RTX 3090 Ti &#xff08;左&#xff09; GeForce RTX 3090&#xff08;右&#xff09; A40&#xff1a; The NVIDIA A40 accelerates the most demanding visual computing workloads from the data center, combining the latest NVIDIA Ampere …

如何在Spring Boot服务端实现公网远程调试并进行HTTP服务监听?具体涉及到的步骤包括端口映射等

文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…

Hadoop学习---7、OutputFormat数据输出、MapReduce内核源码解析、Join应用、数据清洗、MapReduce开发总结

1、OutputFormat数据输出 1.1 OutputFormat接口实现类 OutputFormat是MapReduce输出的基类&#xff0c;所以实现MapReduce输出都实现了OutputFormat接口。 1、MapReduce默认的输出格式是TextOutputFormat 2、也可以自定义OutputFormat类&#xff0c;只要继承就行。 1.2 自定…

C++标准库算法std::upper_bound示例

C标准库算法std::upper_bound示例 贺志国 2023.5.25 C标准库算法std::upper_bound使用二分查找算法在已按升序排列的序列中返回指向第一个大于给定值的元素的迭代器&#xff0c;例如&#xff1a;已按升序排列的序列为{100.0, 101.5, 102.5, 102.5, 107.3}&#xff0c;第一个大…

如何优化供应商采购系统,提升供应商管理和采购流程效能

随着企业采购向数字化转型的发展&#xff0c;供应商采购系统的使用也越来越广泛。如何优化供应商采购系统&#xff0c;提升供应商管理和采购流程效能&#xff0c;已成为企业面临的重要问题。本文将为大家介绍一些优化供应商采购系统的方法&#xff0c;以提升采购效率和管理水平…

zabbix自定义监控

一、案例操作&#xff1a;自定义监控内容 案列&#xff1a;自定义监控客户端服务器登录的人数 需求&#xff1a;限制登录人数不超过 3 个&#xff0c;超过 3 个就发出报警信息 1、自定义监控内容的操作步骤 1.1 在客户端创建自定义 key 明确需要执行的 linux 命令 who | …

RocketMQ基础入门

一、MQ介绍 1.1 为什么要用MQ 消息队列是一种先进先出的数据结构 MQ 其应用场景主要包含以下3个方面 1.1.1 应用解耦 系统的耦合性越高&#xff0c;容错性就越低。以电商应用为例&#xff0c;用户创建订单后&#xff0c;如果耦合度调用库存系统、物流系统、支付系统&#…

mp3格式怎么弄?制作mp3格式文件,教您2个有效的方法!

案例&#xff1a;如何制作mp3格式的文件&#xff1f; 【我想制作自己的mp3文件&#xff0c;但不知道如何开始。有没有小伙伴可以分享一下制作mp3格式的方法&#xff1f;】 MP3是一种非常流行的音频格式&#xff0c;被广泛用于数字音频的存储和传输。制作mp3格式文件可以让您方…

推荐|x86视觉运动控制一体机VPLC710

正运动技术始终围绕客户需求不断迭代升级产品及开发&#xff0c;积极探索工控自动化高质量发展新路径&#xff0c;着眼于全力为客户提供更优质的产品与服务&#xff0c;特此开发了一款可满足全场景高速高精及中大型产线设备应用需求的x86的IPC形态控制器。 VPLC710产品简介 VP…

数字化转型入门

前言 数字化转型是指企业或组织利用数字化技术和数字化思维来提高业务效率、客户体验和创新能力的过程。在当今的数字化时代&#xff0c;企业或组织要想在激烈的市场竞争中获得竞争优势&#xff0c;就必须积极推进数字化转型。本指南将从数字化转型的概念、影响、挑战、关键因…

删除Windows11和WIN10桌面图标小箭头

方法一: 1.右键“开始”菜单,找到“运行”,输入命令 regedit ,打开“注册表编辑器” 2.在“注册表编辑器”左侧窗口,按照以下路径找到对应项 HKEY_CLASSES_ROOT\lnkfile 3.选择右侧窗口的lsShortcut项,右击lsShortcut项,点击删除选项,将lsShortcut删除即可 4.重启电…

Java:mybatis-plus-generator-ui 基于Mybatis-Plus的代码自助生成器

引用官方文档上的简介&#xff1a; 提供交互式的Web UI用于生成兼容mybatis-plus框架的相关功能代码&#xff0c;包括Entity,Mapper,Mapper.xml,Service,Controller等 &#xff0c;可以自定义模板以及各类输出参数&#xff0c;也可通过SQL查询语句直接生成代码。 文档 githu…