我可以在端口 443 上安全地运行 Tomcat 而在 8080 上不安全地运行 Tomcat

2024-02-10

让我解释一下我的情况。

目前,我有很多应用程序在 Tomcat 6 上运行,默认端口为 8080。

我刚刚创建了一些需要登录的应用程序。我将购买 SSL 证书以安装在此服务器上。

我不喜欢使用端口 8443,因为它使 URL 更加复杂。 如果我在端口 80 上运行 Tomcat,则必须更改数十个链接,并且必须以 root 身份运行 Tomcat(而不是 tomcat )。

在端口 8080 上运行不安全应用程序但在端口 443 上运行安全应用程序是否存在问题?

我想象我的设置将具有如下所示的 URL:

http://mydomain.com:8080/report/controller?id=weather http://mydomain.com:8080/report/controller?id=weather

https://mydomain.com/secure/controller?id=profile https://mydomain.com/secure/controller?id=profile

这可能吗?


在 8080 上设置 HTTP 连接器,在 8443 上设置 HTTPS 连接器。<Connector>声明添加proxyPort属性并将其设置为默认 HTTP 和 HTTPS 端口(分别为 80 和 443)。设置防火墙重定向规则从 80 到 8080 以及从 443 到 8443。然后服务器将接受常规的 http 和 https URL,而无需指定端口号。

以下是这些连接器的声明示例。

<Connector
  maxSpareThreads='75'
  port='8080'
  proxyPort='80'
  enableLookups='false'
  maxThreads='150'
  connectionTimeout='20000'
  disableUploadTimeout='true'
  minSpareThreads='5'
  maxHttpHeaderSize='8192'
  redirectPort='443'
  acceptCount='200'
/>

<Connector
  SSLEnabled='true'
  keystoreFile='/path/to/keystore.jks'
  maxSpareThreads='75'
  port='8443'
  proxyPort='443'
  algorithm='SunX509'
  enableLookups='false'
  secure='true'
  maxThreads='150'
  connectionTimeout='20000'
  disableUploadTimeout='true'
  scheme='https'
  minSpareThreads='5'
  maxHttpHeaderSize='8192'
  sslProtocol='SSL'
  acceptCount='200'
  clientAuth='false'
/>

以下是一些重定向 IPTABLES 命令:

# Redirect external packets
-A PREROUTING -j NAT-Port-Redirect

# redirect http traffic
-A NAT-Port-Redirect -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
# redirect https traffic
-A NAT-Port-Redirect -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以在端口 443 上安全地运行 Tomcat 而在 8080 上不安全地运行 Tomcat 的相关文章

  • 如何以编程方式检查应用程序是否在调试模式下运行?

    我必须在应用程序中的某个位置确定我的应用程序是在调试模式还是实时模式下运行 是否有任何函数或代码可用于检查 在开 关两种情况下都会返回 true false 如果是这样 请帮助我 提前致谢 从问题中尚不清楚调试模式是否指的是 应用程序是否可
  • Android 上的 setTimeOut() 相当于什么?

    我需要等效的代码setTimeOut call function milliseconds 对于安卓 setTimeOut call function milliseconds 您可能想查看定时任务 http developer andro
  • 如何检测线程是否被IO阻塞?

    在Java中 线程可以有不同的状态 新的 可运行的 阻塞的 等待的 TIMED WAITING 的 终止的 然而 当线程被IO阻塞时 其状态为 RUNNABLE 如何判断是否被IO阻塞 NEW 线程已创建但尚未处理 可运行 线程正在占用CP
  • mvn dependency:analyze 结果不正确

    我一直在寻找一种工具 它能够向您显示未使用的依赖项 我很快就偶然发现了 Maven 命令mvn dependency analyze 这样做的问题是 它经常检测到 未使用的 依赖项 如果缺失 这些依赖项就会导致构建失败 这是优化项目的示例
  • 如何从 .t​​xt 文件读取数据并将数据放入对象的数组列表中?

    到目前为止 我所写的内容是基于我目前对基本数组的了解 但我只是不明白如何使用数组列表 或如何从文件中读取 到目前为止我所写的内容有效 任何有助于修复我的代码以从文件中读取并使用数组列表的链接或建议将不胜感激 谢谢 public class
  • 如何使用 log4j 自动记录类中调用的每个方法

    我有一个包含数据库调用的类 我通常希望使用 log4j 记录该类中调用的每个方法 带参数 logger debug foo id id initiated 可以自动执行此操作吗 也许通过在每个方法的开头使用某种注释而不是编写每个 logge
  • 仅使用 ServletContext 查找应用程序的 URL

    我正在使用 Spring MVC 编写一个 Java Web 应用程序 我有一个后台进程 它会遍历数据库并查找必须通过电子邮件发送给我的用户的通知 这些电子邮件需要包含应用程序的超链接 对于网络应用程序来说 这似乎是相当常见的模式 但我遇到
  • 如何在Spring Security SAML示例中配置IDP元数据和SP元数据?

    我想处理 Spring Security SAML 为此 我开始探索Spring安全SAML http docs spring io spring security saml docs 1 0 x reference html chapte
  • 如何提高 Guice 启动时的性能

    好吧 我知道我的计算不客观等等 但无论如何 我讨厌在执行单元测试时等待这么多时间 我的 guice swing 应用程序需要大约 7 秒来初始化 这是一个简单的 IRC 客户端 在那一刻 没有打开连接 我什至还没有调用任何 java io
  • 按位非运算符

    为什么要按位运算 0 打印 1 在二进制中 不是0应该是1 为什么 你实际上很接近 在二进制中 不是0应该是1 是的 当我们谈论一位时 这是绝对正确的 然而 一个int其值为0的实际上是32位全零 将所有 32 个 0 反转为 32 个 1
  • 从 Java 调用 Python 代码时出现问题(不使用 jython)

    我发现这是从 java 运行 使用 exec 方法 python 脚本的方法之一 我在 python 文件中有一个简单的打印语句 但是 我的程序在运行时什么也没做 它既不打印Python文件中编写的语句 也不抛出异常 程序什么都不做就终止了
  • 如何对JConsole的密码文件的密码进行加密

    我正在使用 JConsole 访问我的应用程序 MBean 并使用 password properties 文件 但根据 Sun 的规范 该文件仅包含明文格式的密码 com sun management jmxremote password
  • Java 中 LINQ 的等价物是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Java 中 LINQ 的等价物是什么 没有什么比 LINQ for Java 更好的了 Edit 现在
  • 如何迭代SparseArray?

    有没有办法迭代 Java SparseArray 适用于 Android 我用了sparsearray通过索引轻松获取值 我找不到 看来我找到了解决方案 我没有正确注意到keyAt index 功能 所以我会这样做 for int i 0
  • 在调试模式下,哪些代码更改会自动反映在 Eclipse 中?

    我使用 eclipse 用于编写 调试 作为 IDE 在调试模式下 当我进行一些更改 例如初始化局部变量 时 它们会自动反映 但其他更改例如更改静态变量的值 有时我会收到一条消息 说我需要重新启动虚拟机 有时则不需要 现在的问题是哪些类型的
  • Google OR-Tools:无法运行 java 示例,java.lang.UnsatisfiedLinkError:java.library.path 中没有 jniortools

    我是java新手 我想尝试google or tools来解决车辆路由问题 只是尝试运行 java 示例here https developers google com optimization introduction run progr
  • Spring Boot 健康执行器 - 什么时候上线?

    我找不到任何有关 Springs Health Actuator 何时返回 UP 状态的文档 你能依靠一切吗 Components正在初始化 会不会 Controller准备好满足请求了吗 为了测试应用程序上下文是否已加载 您可以执行此自定
  • 当我必须在 Netty4 编码器中调用 ByteBuf.retain() 时?

    我正在编写一个以 NUL 终止 JSON 消息的编码器 以便在消息碎片的情况下可以对其进行解码 我找到了这个样本 gt click https github com netty netty blob master codec src mai
  • 文件构造函数说明

    我无法理解以下文件构造函数 public File String parent String child and public File File parent String child 参数有什么作用parent and child该文件
  • Spring JMS开始根据请求监听jms队列

    Spring提供 JMSListener用于监听来自特定队列的消息的注释 还有一个替代方案实施JmsListenerConfigurer http docs spring io spring docs current spring fram

随机推荐

  • R 中的滚动计算

    我正在尝试使用数据表在 R 中建立摊销贷款帐户模型 每行代表一个月 每个月都会有一笔还款或预支资金 并根据上个月的余额收取利息 例如 gt loan lt data table loan age seq 0 9 payment c 5000
  • 输出包含所有转义字符的 C++ 字符串

    我有一个像这样的字符串 string s t Hello n 当我打印它时 它会给我一个选项卡 然后是 Hello 然后是一个新行 但是 我是否可以打印它 以便在控制台中看到 t Hello n 换句话说 我希望字符串忽略转义字符并将其视为
  • 使用 Scala 模式匹配时工作正则表达式失败

    在以下代码中 使用 Java API 时会匹配相同的模式 但使用 Scala 模式匹配时不会匹配 import java util regex Pattern object Main extends App val text oAuth h
  • 如何使用批处理文件重命名文件以包含日期?

    我有一个显示警报打印机的文本文件 我想在Windows XP下设置一个批处理文件 以更改警报打印机的默认名称以包含日期 这将使搜索错误变得更加容易 警报打印机被捕获到文本文件中 我已经能够更改名称 但每次我尝试将名称设置为日期时 要么什么也
  • TestNG:在运行时更改线程数

    假设我有一个可以并行或串行执行的套件 然而 这样做的决定要等到运行时才能决定 启动该套件的常见方法如下 TestNG runner new TestNG if runInParallel set parallel mode too here
  • Flash 横幅在 Chrome 中不起作用

    我的网站中有一些 Flash 横幅和一些 GIF 几天前 我注意到使用 Chrome 浏览时 Flash 不工作 用IE浏览时一切正常 这是我的网站的链接 http batgalim org il http batgalim org il
  • 为什么 Numpy 只有维度 (n,) 而不是 (n,1) [重复]

    这个问题在这里已经有答案了 我对此感到好奇有一段时间了 我可以忍受这一点 但如果不采取足够的照顾 它总是会咬我 所以我决定将其发布在这里 假设以下示例 Numpy 版本 1 8 2 a array 0 1 2 3 print shape a
  • 在输入文本字段之前禁用按钮?

    我在一个视图中有几个 uitextfields 我想禁用 uibutton 直到所有字段都输入了一些内容 这样做的最佳方法是什么 理想情况下 我也想做一些基本验证 确保所有条目都是数字 EDIT 无法让以下解决方案完全发挥作用 下面是我工作
  • 如何在 Symfony2 表单中为集合添加自动完成字段并使用 Propel?

    我将 Symfony 2 1 表单与 PropelBundle 一起使用 并且尝试重构一个具有对象下拉列表 可供选择 的表单 以代替使用 jquery 自动完成字段 使用 AJAX 对于下拉列表 我在表单类型中使用了以下代码 对于下拉列表来
  • iOS 8.3 Mobile Safari 禁用表情符号渲染

    苹果最近发布了iOS 8 3 他们添加了更多表情符号 现在所有表情符号都在移动 safari 中呈现 例如 将呈现为表情符号图标 有没有办法禁用表情符号渲染 例如通过 CSS 或 JavaScript 是的 您可以使用适当的变体字形逐个字符
  • 如何使用邮递员休息客户端将post请求发送到以下post方法

    我只是想知道如何将 JSON 对象发送到createTrackInJSON Track track 方法 用 Post通过邮递员休息客户端进行注释 这里 如何将 JSON 对象传递给 createTrackInJSON Track trac
  • UWP/Windows 10 移动版中的 System.Threading.Thread 替换

    在UWP中 如何访问线程对象 我想更改我将管理的主线程和附加线程的名称 我还想检查当前线程是否是主线程 我的目标是 Windows 10 Mobile 以下代码示例适用于桌面 但不适用于手机 获取 System DllNotFoundExc
  • state_activated预蜂窝

    你如何使用
  • 每个请求的 DbContext

    我需要为导入文件实现多线程后台作业 我已经通过后台作业 Hangfire 实现了它 但如果我使用一个线程 它会变得非常慢 该函数看起来像这样 我使用非事务单元立即保存对数据库的更改 var contactFound await contac
  • 如何在编译时检查表达式是否非法?

    我的应用程序遇到问题 我想断言函数应用程序将被编译器拒绝 有没有办法通过 SFINAE 检查这一点 例如 假设我想验证std transform to a const范围非法 这是我到目前为止所拥有的 include
  • PowerBuilder 12.5 Web 表单 - 部署时列不可编辑或丢失 Tab 键顺序

    我是一名经验丰富的 PB 开发人员 但主要使用典型的客户端 服务器架构 并且我确实遇到了问题网页表格应用程序部署到IIS7 5 using PB12 5经典 我正在创建一个可更新的数据对象 Web 服务 它在设计模式下完美工作 但是当从部署
  • 如何使用 hibernate.cfg.xml 创建数据库架构

    using lt property name hbm2ddl auto gt create lt property gt 只创建表 每当模式不存在时 hibernate 就无法创建表 因为模式不存在 Hibernate 不会为您创建模式 但
  • 使用 python 迭代时修改列表

    编辑 当我想修改原始列表时 我知道要迭代列表的副本 然而 我收到的关于在迭代列表时修改列表的错误的唯一解释是 它可能会导致意外的结果 考虑以下 lst a b c d e for x in lst lst remove x print ls
  • Windows 10 中“mvn”未被识别为内部或外部命令、可操作程序或批处理文件错误

    我读过有关此问题的类似问题 但无论如何它都不起作用 我已将 Maven 3 3 3 提取到 D Maven Java 已安装并且工作正常 然后添加了 2 个系统变量 Variable Value M2 M2 HOME bin M2 HOME
  • 我可以在端口 443 上安全地运行 Tomcat 而在 8080 上不安全地运行 Tomcat

    让我解释一下我的情况 目前 我有很多应用程序在 Tomcat 6 上运行 默认端口为 8080 我刚刚创建了一些需要登录的应用程序 我将购买 SSL 证书以安装在此服务器上 我不喜欢使用端口 8443 因为它使 URL 更加复杂 如果我在端