在CentOS系统下的Tomcat8.5或9安装SSL证书

您可以在CentOS系统下的Tomcat服务器安装SSL证书,实现通过HTTPS安全访问Web服务。本文介绍如何CentOS系统下Tomcat 8.5或9安装SSL证书。

环境准备

  • 操作系统:CentOS 7.6 64位

  • Web服务器:Tomcat 8.5或9

说明

Tomcat服务器需要提前安装JDK环境变量,请前往Tomcat官网查看推荐的JDK兼容配置。

前提条件

  • 已通过数字证书管理服务控制台签发证书。具体操作,请参见购买SSL证书和提交证书申请。

  • SSL证书绑定的域名已完成DNS解析,即您的域名与主机IP地址相互映射。您可以通过DNS验证证书工具,检测域名DNS解析是否生效。具体操作,请参见DNS验证。

步骤一:下载SSL证书

  1. 登录数字证书管理服务控制台。

  2. 在左侧导航栏,单击SSL 证书

  3. SSL 证书页面,定位到目标证书,在操作列,单击下载

  4. 服务器类型为Tomcat的操作列,单击下载

    image..png

  5. 解压缩已下载的SSL证书压缩包。

    根据您在提交证书申请时选择的CSR生成方式,解压缩获得的文件不同,具体如下表所示。

    CSR

    CSR生成方式

    证书压缩包包含的文件

    系统生成选择已有的CSR

    • 证书文件(PFX格式):默认以证书ID_证书绑定域名命名。

    • 密码文件(TXT格式):默认以证书格式-password命名

      重要

      每次下载证书时都会产生新的密码,该密码仅匹配本次下载的证书文件。

    手动填写

    • 如果您填写的是通过数字证书管理服务控制台创建的CSR,下载后包含的证书文件与系统生成的一致。

    • 如果您填写的不是通过数字证书管理服务控制台创建的CSR,下载后只包括证书文件(PEM格式),不包含证书密码或私钥文件。您可以通过证书工具,将证书文件和您持有的证书密码或私钥文件转换成所需格式。转换证书格式的具体操作,请参见证书格式转换。

步骤二:在Tomcat服务器安装证书

  1. 将解压后的证书文件和密码文件上传到Tomcat服务器的conf目录。

    说明

    您可以使用远程登录工具附带的本地文件上传功能,上传文件。例如PuTTy、Xshell或WindSCP等。如果您使用的阿里云云服务器 ECS,上传文件具体操作,请参见本地Windows主机使用MSTSC上传文件到Windows云服务器或上传文件到Linux云服务器。

  2. 进入tomcat安装根目录,执行以下命令,打开server.xml文件。

    vim ./conf/server.xml 
  3. 在server.xml文件中,定位到以下配置项,按照配置示例进行配置。

    • 配置项一:

      image..png

      配置示例:

      <Connector port="80" protocol="HTTP/1.1" #将Connector port修改为80connectionTimeout="20000"redirectPort="443"  #将redirectPort修改为SSL默认端口443,让HTTPS请求转发到443端口。maxParameterCount="1000"/>
    • 配置项二。

      image..png

      配置示例(需去掉<!- - 和 - ->注释符):

      <Connector port="443"   #将Tomcat中默认的HTTPS端口修改为443。8443端口不可通过域名直接访问、需要在域名后加上端口号。#443端口是HTTPS的默认端口,可通过域名直接访问,无需在域名后加端口号。protocol="org.apache.coyote.http11.Http11NioProtocol" #Connector port有两种运行模式NIO和APR,请选择NIO模式。maxThreads="150" SSLEnabled="true"maxParameterCount="1000"><SSLHostConfig><Certificate certificateKeystoreFile="conf/xxx.pfx" #修改为证书文件路径certificateKeystorePassword="xxxxxx" #填写证书文件密码。type="RSA" /></SSLHostConfig>
      </Connector>
    • 配置项三:

      image..png

      配置示例(需去掉<!- - 和 - ->注释符):

      <Connector protocol="AJP/1.3"address="::1"port="8009"redirectPort="443" ##将redirectPort修改为443,让HTTPS请求转发到443端口。maxParameterCount="1000"/>
  4. 可选:在/conf/web.xml文件,配置HTTP请求自动跳转HTTPS。

    1. 进入tomcat安装根目录,执行以下命令,打开web.xml文件。

      vim ./conf/web.xml 
    2. 在web.xml文件最底部添加以下配置项。

      <security-constraint> <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>
  5. 进入Tomcat的bin目录,执行以下命令,停止Tomcat并重启。

    ./shutdown.sh #停止Tomcat服务
    ./startup.sh #重启Tomcat服务

步骤三:验证SSL证书是否安装成功

证书安装完成后,您可通过访问证书的绑定域名验证该证书是否安装成功。

https://yourdomain   #需要将yourdomain替换成证书绑定的域名。

如果网页地址栏出现小锁标志,表示证书已经安装成功。

image..png

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringSecurity 用户帐号已被锁定

SpringSecurity 用户帐号已被锁定 01 异常发生场景 当我自定义登录接口时以下是我的UserDetailsService和UserDetails接口的实现类 Service public class UserDetailsServiceImpl implements UserDetailsService {Autowiredprivate MsUserServiceImp msUserServiceImp;Overr…

SeaTunnel扩展Source插件,自定义connector-webservice

代码结构 在seatunnel-connectors-v2中新建connector-webservice模块&#xff0c;可以直接赋值connector-http-base模块&#xff0c;webservice和http的方式比较类似&#xff0c;有些类直接复制了http中的代码。 核心类有WebserviceConfig&#xff0c;WebserviceParameter&am…

WPF Mvvm模式下面如何将事件映射到ViewModel层

前言 平常用惯了Command绑定,都快忘记传统的基于事件编程模式了,但是Commond模式里面有个明显的问题,就是你无法获取到事件源的参数。很多大聪明肯定会说,这还不简单,通过自己写控件,给控件加个自定义属性不就行了,想要啥事件就写啥事件进去,完全自主可控。但是对于写…

列表插槽使用

{label: 是否展示,prop: isShow,solt: true, }<!--自定义列--><template slot-scope"scope" slot"isShow"><div style"color: red;cursor: pointer" focus"getIsShow(scope.row)" ><el-switch v-model"sco…

良品铺子“降价不降质”:利他主义,零食新成长逻辑

最近&#xff0c;男大学生组团穿军大衣&#xff0c;女大学生集体穿花棉袄&#xff0c;火遍全网。 相当一批大学生发现&#xff0c;军大衣、花棉袄在保暖上不输羽绒服&#xff0c;而且价格还便宜。这股风潮背后&#xff0c;其实映射出当下年轻人在消费上变得愈发&#xff1a; …

C# 动态编译代码并执行

写在前面 本文采用动态编译的方式&#xff0c;对目标文件code.txt中的C#代码进行实时编译并调用&#xff1b;当然也可以直接在代码中直接装配或读取已有的代码文本&#xff0c;动态编译可以用于很多需要热更新的场景&#xff0c;实现无需重启程序也能达到更新代码的需求。 代…

算法题--排椅子(贪心)

题目链接 code #include<bits/stdc.h> using namespace std;struct node{int indx;//用来存储数组下标int cnt;//用来计数 };bool cmp(node a,node b){ //判断是否是数字最大的一个就是经过最多谈话人的道return a.cnt>b.cnt; } node row[2010],cow[2010];bool cmp…

MatrixOne Meetup回顾 | 深圳站

11月11日&#xff0c;MatrixOne 社区在深圳成功举办了第二次 MatrixOne Meetup。活动当天&#xff0c;数十位外部小伙伴到场参与&#xff0c;一同分享云原生数据库相关知识内容。此次活动&#xff0c;我们也邀请了来自深圳素问智能的外部讲师&#xff0c;分享了目前火爆的大模型…

什么是死锁?如何产生死锁?死锁的必要条件?怎么解决死锁?

🔒1、什么是死锁 死锁是一个非常让程序猿烦恼的问题,一旦所写的程序有了死锁,那么程序就无法执行下去,会出现严重的 bug,并且死锁非常隐蔽,我们不会轻易发现它,在开发阶段,不经意期间我们就会写出死锁,很难检测出来。 那么什么是死锁呢?竟然让我们如此烦恼。 “死…

为何要隐藏IP地址?网络上哪些行为需要隐藏IP和更换IP?

网络已经成为现代人生活的重要组成部分&#xff0c;人们在网络上交流、学习、娱乐、购物等。但是&#xff0c;在享受网络带来的便利时&#xff0c;我们也需要时刻保护自己的隐私和安全。其中&#xff0c;IP地址作为网络通信中的重要标识&#xff0c;如何隐藏以及在哪些情况下需…

数据中台具体是怎么解决数据孤岛的?_光点科技

在数字化时代&#xff0c;数据已成为企业的核心资产。然而&#xff0c;由于历史遗留问题、部门壁垒等因素&#xff0c;很多企业面临着“数据孤岛”的问题。数据孤岛是指在一个组织内&#xff0c;数据被分散在不同的系统中&#xff0c;彼此隔离&#xff0c;不能有效整合和利用。…

建设银行RPA应用实践

当下&#xff0c;银行业正在从“互联网金融”时代向“新科技金融”时代迈进&#xff0c;在目前经济形势严峻、人力成本持续增加的经营背景下&#xff0c;以科技解放人力将是智能化银行发展的必然趋势。RPA技术为解决上述问题提供了崭新的路径。 RPA&#xff08;机器人流程自动…