apache+tomcat 的 url 重定向及 ssl 与 https 连接的方法

本贴最后更新于 1957 天前,其中的信息可能已经沧海桑田

imagepng

apache + tomcat的url转向和https的一些小问题

学习过程中,在域名访问这块遇到了一些小的问题,比如端口重定向,强制 https 安全连接这方面等,经过自己的努力和在度娘与谷歌的帮助下也算是完美的解决的
现在就分享下自己解决的过程,希望可以帮助到大家 ^_^。

apache:域名(端口)访问重定向
浏览器中的默认访问端口是 80,而有时候其他程序建立的站点为了不占用 80 端口因此就选择的其他的端口,比如 tomcat 用的是 8080,但是从浏览器中直接输入域名 + 端口显然是不友好的访问方式,因此这是就需要域名访问的重定向了,这里主要分享下 apache 监听 80 端口如何做到重定向其他端口。
我用的是 linux 操作系统因此也就以 linux 操作系统来演示。
首先要找到安装 apache 的所在目录如图是我的 apache 安装所在路径
imagepng
然后进入 conf 文件夹配置 httpd.conf 文件
imagepng
imagepng

这段代码的意思是将你浏览器访问默认 80 端口的 www.jiangck.com 这个 url 重定向到 119.75.217.109:8080/baidu 这个 url,重定向的地方可以任意设置。
另外要想将 http 的请求全部跳转为 https 请求方式只需再虚拟主机配置里添加下面三句话
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.)?$ https://%{SERVER_NAME}$1 [L,R]
若想指定单一域名强制转到 https 只需将第三句话改为
RewriteRule ^(.
$) https://跳转的目标地址 [R,L] 即可
对于 tomcat 只需要配置好 ssl 开启 https 就可以配置 apache 进行完美的跳转访问

接下来就说说如何配置 apache 以及 tomcat 的 ssl 如何配置以及如何开启 https
这里只先分享下有合法 ssl 证书的配置,也就是 https 访问时提示是安全的方式
我的域名是从腾讯云服务平台申请的,可以免费申请 1 年 ssl 的证书使用,到期可以重新申请无需担心,首先先将自己的域名证书下载来可以到证书管理哪里看看,如果没有的话就先申请,一般几分钟就可以通过然后下载了
imagepng
下载后的 ssl 证书内容如下imagepng
可以看到里面有四种软件的 ssl 证书,也是非常方便的我们这里用到的有 apache 和 tomcat 所以就把这两个文件夹下的东西进行拷贝,放到服务器的目录里面。
对于 Apache:

  1. 首先修改 httpd.conf 文件
    LoadModule ssl_module modules/mod_ssl.so
    Include conf/extra/httpd-ssl.conf
    #去掉上面两行前的"#"
  2. 打开 apache 安装目录下 conf/extra 目录下的 httpd-ahssl.conf 文件
    Listen 443 监听端口是 443
    找到imagepng 这个配置块
    然后依次往下配置(先找,没有的就添加,有'#'注释的取消就行)
    DocumentRoot "/www/server/apache/htdocs" 这里填你 ssl 证书存放的目录,以下同
    ServerName www.example.com:443
    SSLCertificateFile "/www/server/apache/conf/你的域名证书.crt"
    SSLCertificateKeyFile "/www/server/apache/conf/你的域名证书.key"
    SSLCertificateChainFile "/www/server/apache/conf/1_root_bundle.crt"
    配置完保存退出重启 apache 可以进行 https 的访问了记得防火墙要开通 443 的端口哟

对于 tomcat:

  1. 配置 server.xml 文件
    打开 tomcat 安装目录的下的 conf 文件夹下的 server.xml 进行编辑
    找到
    imagepng
    取消前面的注释这个是 tomcat 监听 https 443 端口的配置块并且添加好 ssl 证书的位置及密码
    imagepng
    比如我的密码就在那个 txt 里面粘贴到上面就行
    然后保存重启 tomcat 就可以访问浏览器输入 https://localhost 就可以直接显示 tomcat 的配置页面
    imagepng
  2. Tomcat 所有的访问连接强制为 https
    在 tomcat /conf/web.xml 中的 最底下加上以下内容
    <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>
    即可以实现所有的 http 访问全部转为 https 了。

PS:一定要记得开放 443 端口,哪里还有缺的地方请留言撒

  • 技术

    到底什么才是技术呢?

    88 引用 • 179 回帖 • 4 关注
  • 经验
    25 引用 • 155 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • linker

    还是换 nginx 吧。

  • someone

    哦哦,我的 solo 开始用的 apache 所以开始就写个我在搭建的过程遇到的问题,以后会换 nginx 的,谢谢大佬的建议😄

  • someone

    老哥我关注你了哈

  • someone

    写的干货不错啊

推荐标签 标签

  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    35 引用 • 200 回帖 • 24 关注
  • Kotlin

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在 Google I/O 2017 中,Google 宣布 Kotlin 成为 Android 官方开发语言。

    19 引用 • 33 回帖 • 27 关注
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    5 引用 • 26 回帖 • 492 关注
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    77 引用 • 1741 回帖 • 1 关注
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 319 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖
  • CodeMirror
    1 引用 • 2 回帖 • 115 关注
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    10 引用 • 54 回帖 • 126 关注
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 548 关注
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    90 引用 • 383 回帖 • 1 关注
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 43 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 6 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 383 回帖 • 3 关注
  • iOS

    iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。

    84 引用 • 139 回帖
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    164 引用 • 594 回帖
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    4 引用 • 7 回帖 • 4 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    205 引用 • 357 回帖
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖 • 222 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    140 引用 • 441 回帖
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    15 引用 • 7 回帖 • 11 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    126 引用 • 1699 回帖 • 1 关注
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 588 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    51 引用 • 37 回帖 • 1 关注
  • 房星科技

    房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。

    6 引用 • 141 回帖 • 559 关注
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    91 引用 • 751 回帖 • 1 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖 • 1 关注