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

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

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 重定向到 http://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 引用 • 157 回帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 还是换 nginx 吧。

  • 其他回帖
  • someone

    写的干货不错啊

  • someone

    老哥我关注你了哈

  • someone

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

推荐标签 标签

  • WebComponents

    Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。

    1 引用 • 1 关注
  • 安装

    你若安好,便是晴天。

    131 引用 • 1184 回帖 • 1 关注
  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 22 关注
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 457 关注
  • PWL

    组织简介

    用爱发电 (Programming With Love) 是一个以开源精神为核心的民间开源爱好者技术组织,“用爱发电”象征开源与贡献精神,加入组织,代表你将遵守组织的“个人开源爱好者”的各项条款。申请加入:用爱发电组织邀请帖
    用爱发电组织官网:https://programmingwithlove.stackoverflow.wiki/

    用爱发电组织的核心驱动力:

    • 遵守开源守则,体现开源&贡献精神:以分享为目的,拒绝非法牟利。
    • 自我保护:使用适当的 License 保护自己的原创作品。
    • 尊重他人:不以各种理由、各种漏洞进行未经允许的抄袭、散播、洩露;以礼相待,尊重所有对社区做出贡献的开发者;通过他人的分享习得知识,要留下足迹,表示感谢。
    • 热爱编程、热爱学习:加入组织,热爱编程是首当其要的。我们欢迎热爱讨论、分享、提问的朋友,也同样欢迎默默成就的朋友。
    • 倾听:正确并恳切对待、处理问题与建议,及时修复开源项目的 Bug ,及时与反馈者沟通。不抬杠、不无视、不辱骂。
    • 平视:不诋毁、轻视、嘲讽其他开发者,主动提出建议、施以帮助,以和谐为本。只要他人肯努力,你也可能会被昔日小看的人所超越,所以请保持谦虚。
    • 乐观且活跃:你的努力决定了你的高度。不要放弃,多年后回头俯瞰,才会发现自己已经成就往日所仰望的水平。积极地将项目开源,帮助他人学习、改进,自己也会获得相应的提升、成就与成就感。
    1 引用 • 487 回帖
  • SQLite

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

    4 引用 • 7 回帖 • 2 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    163 引用 • 473 回帖
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    54 引用 • 85 回帖
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 401 关注
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    21 引用 • 140 回帖 • 2 关注
  • Swagger

    Swagger 是一款非常流行的 API 开发工具,它遵循 OpenAPI Specification(这是一种通用的、和编程语言无关的 API 描述规范)。Swagger 贯穿整个 API 生命周期,如 API 的设计、编写文档、测试和部署。

    26 引用 • 35 回帖 • 1 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    138 引用 • 268 回帖 • 102 关注
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 31 关注
  • frp

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

    19 引用 • 7 回帖 • 3 关注
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 615 关注
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 42 关注
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    487 引用 • 908 回帖
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 621 关注
  • Notion

    Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.

    5 引用 • 26 回帖
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    28 引用 • 66 回帖 • 1 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖
  • Caddy

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

    11 引用 • 54 回帖 • 146 关注
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    5 引用 • 62 回帖 • 10 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    19 引用 • 31 回帖
  • Eclipse

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    75 引用 • 258 回帖 • 634 关注
  • danl
    98 关注