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

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

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

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

  • someone

    老哥我关注你了哈

  • someone

    写的干货不错啊

推荐标签 标签

  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    7015 引用 • 31704 回帖 • 220 关注
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 20 关注
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1083 引用 • 3461 回帖 • 257 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    88 引用 • 1234 回帖 • 442 关注
  • GraphQL

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

    4 引用 • 3 回帖 • 16 关注
  • PWL

    组织简介

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

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

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

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    76 引用 • 37 回帖 • 1 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    35 引用 • 35 回帖
  • ZeroNet

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

    1 引用 • 21 回帖 • 609 关注
  • SQLServer

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

    19 引用 • 31 回帖 • 1 关注
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 353 关注
  • Bug

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

    71 引用 • 1737 回帖 • 1 关注
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • 房星科技

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

    6 引用 • 141 回帖 • 566 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 322 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 5 关注
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 646 关注
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖 • 6 关注
  • 音乐

    你听到信仰的声音了么?

    60 引用 • 510 回帖 • 1 关注
  • TensorFlow

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

    20 引用 • 19 回帖
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    4 引用 • 91 回帖
  • abitmean

    有点意思就行了

    38 关注
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    76 引用 • 390 回帖
  • 电影

    这是一个不能说的秘密。

    120 引用 • 598 回帖
  • SMTP

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

    4 引用 • 18 回帖 • 608 关注
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    103 引用 • 126 回帖 • 443 关注