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

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

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 引用 • 159 回帖

相关帖子

欢迎来到这里!

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

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

  • someone

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

  • someone

    老哥我关注你了哈

  • someone

    写的干货不错啊

推荐标签 标签

  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖 • 1 关注
  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    223 引用 • 474 回帖
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    943 引用 • 1460 回帖 • 3 关注
  • 职场

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

    127 引用 • 1706 回帖
  • Hexo

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

    21 引用 • 140 回帖 • 3 关注
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    70 引用 • 193 回帖 • 418 关注
  • VirtualBox

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

    10 引用 • 2 回帖
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    334 引用 • 323 回帖 • 3 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    5 引用 • 15 回帖 • 102 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 26 关注
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    52 引用 • 190 回帖 • 1 关注
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 604 关注
  • abitmean

    有点意思就行了

    27 关注
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    125 引用 • 588 回帖
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 745 关注
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    265 引用 • 666 回帖 • 1 关注
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    15 引用 • 7 回帖
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    77 引用 • 430 回帖 • 1 关注
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    36 引用 • 37 回帖 • 535 关注
  • CodeMirror
    1 引用 • 2 回帖 • 129 关注
  • Docker

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

    492 引用 • 926 回帖
  • etcd

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

    5 引用 • 26 回帖 • 528 关注
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    181 引用 • 400 回帖
  • B3log

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

    1063 引用 • 3454 回帖 • 189 关注