34、springboot切换内嵌Web服务器(Tomcat服务器)与 生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS

这篇具有很好参考价值的文章主要介绍了34、springboot切换内嵌Web服务器(Tomcat服务器)与 生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

知识点1:springboot切换内嵌Web服务器(Tomcat服务器)

知识点2:生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS

★ Spring Boot默认的Web服务器(Tomcat)

▲ 基于Servlet的应用(使用Spring MVC框架),spring-boot-starter-web.jar默认依赖spring-boot-starter-tomcat.jar,
   因此它默认使用Tomcat作为内嵌服务器。

▲ 基于Reactive的应用(使用Spring WebFlux框架),spring-boot-starter-webflux.jar默认依赖spring-boot-starter-reactor-netty.jar,
   因此它默认使用Reactor Netty作为内嵌服务器。


▲ 切换作为内嵌服务器。

   对pom.xml进行两步修改:
  (1)在spring-boot-starter-web.jar依赖配置内使用<exclusions.../>元素排除spring-boot-starter-tomcat.jar依赖。
  (2)显式添加spring-boot-starter-jetty.jar或spring-boot-starter-undertow.jar依赖。

由此可见:要让Spring Boot应用切换使用Web服务器,基本不需要修改任何代码,只需要修改pom.xml文件即可。

演示:

spring-boot-starter-web 默认依赖 Tomcat 内置服务器
34、springboot切换内嵌Web服务器(Tomcat服务器)与 生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS,springboot,http,spring boot,前端

改为 Jetty 服务器
34、springboot切换内嵌Web服务器(Tomcat服务器)与 生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS,springboot,http,spring boot,前端

改为 Undertow 服务器

34、springboot切换内嵌Web服务器(Tomcat服务器)与 生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS,springboot,http,spring boot,前端

★ 配置HTTPS

目的:把请求路径 http://xxxxx 改成 https://xxxxx
如图:原本普通的项目,启动后是http的
34、springboot切换内嵌Web服务器(Tomcat服务器)与 生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS,springboot,http,spring boot,前端

早期: 早期的普通网站可能大部分都是基于HTTP的。
       http最大问题是:所有请求数据、响应数据都是明码,只要任何网络嗅探都可以轻松获取请求、和响应数据。

现在: 绝大部分网站都已经改为给予HTTPS
       HTTPS所有请求数据、响应数据都是加密后的数据,只要任何网络嗅探都只能获取请求、和响应加密后的数据。
       唯一缺点是:性能略慢。


目前传统的HTTP基本已经被淘汰了,现在大多用的都是HTTPS协议,它就是基于SSL,SSL代表Secure Socket Layer,安全网络层。

▲ 只需如下两步即可。

(1)生成或购买SSL证书。开发者自己生成的SSL证书通常只是用于测试,如果部署成实际运行的项目,
    浏览器会提示该SSL证书是不可信任的证书。

(2)在application.properties(或application.yaml)文件中通过server.ssl.*属性配置即可。

备注:如果希望应用能同时支持HTTPS连接器和HTTP连接器,
     推荐使用application.properties(或application.yaml)配置HTTPS,
     然后使用编程式的方式添加HTTP连接器。——一般不推荐这么干。

▲ 生成SSL证书(如果打算购买CA机构颁发的SSL证书,这一步可以省略)的命令:

 keytool -genkey -v -alias spring -keyalg RSA -keystore F:\myCode\crazyCode\SpringBoot\SSLtest\spring.keystore -validity 36500

上面命令所使用的keytool是JDK提供的一个工具,如果运行该命令时提示找不到该工具,那一定是JDK还没有配置好。

keytool命令的-genkey是它的子命令,用于生成key。该子命令支持如下常用选项:

-alias:指定证书别名。
-keyalg:指定算法。
-keystore:指定将证书存储在哪里。
-validity:指定证书的有效时间,指定为36500意味着有效期是100年。

配置 HTTPS 演示

第一步:先生成 SSL 证书

先按步骤生成自己的 SSL 证书,仅用于测试用。
输入这条命令:
keytool -genkey -v -alias spring -keyalg RSA -keystore F:\myCode\crazyCode\SpringBoot\SSLtest\spring.keystore -validity 36500
34、springboot切换内嵌Web服务器(Tomcat服务器)与 生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS,springboot,http,spring boot,前端

第二步:在yml配置文件中进行配置

在application.properties(或application.yaml)文件中通过server.ssl.*属性配置即可。

把证书拷贝到resources目录下。
因为项目要打包运行,肯定得把ssl证书放在项目中
34、springboot切换内嵌Web服务器(Tomcat服务器)与 生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS,springboot,http,spring boot,前端
然后在yml配置的时候,使用类加载路径下的 spring.keystore 作为 ssl 证书库

在yml配置ssl,启动项目,可以看到 http 变成 https 了
34、springboot切换内嵌Web服务器(Tomcat服务器)与 生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS,springboot,http,spring boot,前端
原本没配置ssl证书之前,是 http 这样的
34、springboot切换内嵌Web服务器(Tomcat服务器)与 生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS,springboot,http,spring boot,前端

配置成功后进行访问:https://localhost:8080/webFirst
因为ssl证书是自己生成的,所以肯定会报危险,因为自定义的ssl证书是可以随便写的。

34、springboot切换内嵌Web服务器(Tomcat服务器)与 生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS,springboot,http,spring boot,前端
接受风险并继续,可以看到能用 https 访问了
34、springboot切换内嵌Web服务器(Tomcat服务器)与 生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS,springboot,http,spring boot,前端
用 http 访问就变成这个样子了
34、springboot切换内嵌Web服务器(Tomcat服务器)与 生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS,springboot,http,spring boot,前端

配置了 https ,然后通过查看消息头,是属于 HTTP/1.1
34、springboot切换内嵌Web服务器(Tomcat服务器)与 生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS,springboot,http,spring boot,前端

小bug

bug详情
在yml配置的时候,出现这么个bug
java.io.FileNotFoundException: class path resource [spring.keystore] cannot be resolved to URL because it does not exist
表示找不到我放在项目的证书
需要再pom文件中添加这个配置才行文章来源地址https://www.toymoban.com/news/detail-672723.html

    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>

★ 配置HTTP/2

现状:目前的主流浏览器都支持HTTP/2协议。

HTTP/2是为了解决现有HTTP/1.1性能不好、安全性不足的问题才出现的。
Spring Boot不支持传统HTTP的HTTP/2,它只支持基于HTTPS的HTTP/2,因此在配置HTTP/2之前必须先配置SSL。

▲ Undertow的HTTP/2支持:在yml配置文件中将server.http2.enabled属性 设置为true即可。

▲ 从Tomcat 9.0.x开始,只要使用JDK 9+,将server.http2.enabled属性设为true即可。
  Spring Boot内置已经是Tomcat 9以上的版本。

▲ Jetty的HTTP/2支持,需要添加额外的库,再将server.http2.enabled属性设为true即可。
  首先需要添加HTTP2 Server服务器:org.eclipse.jetty.http2: http2-server

  还需要根据环境来添加如下JAR包

  JDK 9+ : org.eclipse.jetty:jetty-alpn-java-server
  JDK 8 : org.eclipse.jetty-alpn-openjdk8-server

▲ Reactor Netty的HTTP/2支持:只要使用JDK 9+,将server.http2.enabled属性设为true即可。


总结一下可发现:只要JDK使用JDK 9+,大部分Web服务器只要将server.http2.enabled属性设为true即可。
               除了Jetty要增加额外的库之外,Tomcat要使用Tomcat 9.0+

到了这里,关于34、springboot切换内嵌Web服务器(Tomcat服务器)与 生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • tomcat---企业高性能web服务器

    目录 1.tomcat的简介 2.tomcat安装 3.tomcat中重要的目录及路径  编写一个tomcat的启动脚本 4.tomcat的web站点的部署 如果需要修改首页文件: 5.tomcat的虚拟主机部署 tomcat是一款开源免费的web应用服务器,在中小型企业及并发访问不是很高的情况下使用,是开发和调试jsp首选。但是t

    2024年02月13日
    浏览(35)
  • Web服务器-Tomcat详细原理与实现

    :MAC 安装配置使用Tomcat - 掘金 安装后本计算机就相当于一台服务器了!!! 方式一:使用本地安装的Tomcat 1、将项目文件移动到Tomcat的webapps目录下。 2、启动Tomcat 3、在浏览器输入想要加载的项目资源URL即可 方式二:使用IDEA中集成的Tomcat 在IDEA内配置Tomcat直接搜 写好业务类

    2024年02月10日
    浏览(32)
  • 搭建第一个Web服务器(在eclipse或idea上部署Tomcat服务器)

    💻博主现有专栏:                 C51单片机(STC89C516),c语言,c++,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux,基于HTML5的网页设计及应用,Rust(官方文档重点总结),jQuery,前端vue.js,Javaweb开发,Python机器学习等 🥏主页链接:     

    2024年04月12日
    浏览(34)
  • 36、springboot --- 对 tomcat服务器 和 undertow服务器 配置访客日志

    访客日志: Web服务器可以将所有访问用户的记录都以日志的形式记录下来,主要就是记录来自哪个IP的用户、在哪个时间点、访问了哪个资源。 pattern: %t 访问时间 %a 访问用户的ip “%r” 访问的方式和地址 %s 使用的协议 (%D ms) 访问后的响应 代码演示: 这是用 tomcat 来设置 访

    2024年02月10日
    浏览(32)
  • SpringBootWeb入门、HTTP协议、Web服务器-Tomcat

    目录 一、SpringBootWeb入门 二、HTTP协议 HTTP-请求协议 HTTP-响应协议 HTTP-协议解析 三、Web服务器-Tomcat 服务器概述 Tomcat 直接基于SpringFramework进行开发,存在两个问题:配置繁琐、入门难度大 通过springboot就可以快速的帮我们构建应用程序,所以springboot呢,最大的特点有两个 :

    2024年01月15日
    浏览(30)
  • IntelliJ IDEA创建Web项目并使用Web服务器----Tomcat

    以下是本篇文章正文内容,下面案例可供参考(提示:本篇文章属于原创,请转发或者引用时注明出处。),大家记得支持一下!!!! 每日清醒: ✌✌✌♘慢慢来,谁还没有一个努力的过程。🏆 一定要注意:别忘了设置好之后点击应用!!!!!!!!! maven项目的重点

    2024年02月10日
    浏览(45)
  • 企业级高负载web服务器-Tomcat小项目

    静态页面: 在网站设计中,纯粹HTML格式的网页(可以包含图片、视频JS (前端功能实现)、CSS (样式)等)通常 被称为\\\"静态网页\\\" 特点: 处理文件类型:如.html、jpg、.gif、.mp4、.swf、.avi、.wmv、.flv等2. 地址中不含有问号\\\"?\\\"或等特殊符号。 保存在网站服务器文件系统上的,是

    2024年02月14日
    浏览(34)
  • Springboot 优化内置服务器Tomcat优化(underTow)

    通过org.springframework.boot.autoconfigure.web.ServerProperties查看,其中包括属性tomcat、jetty、undertow三种服务器的设置,默认启用tomcat。 比较重要的有两个: 初始线程数 和 最大线程数 。 初始线程数: 保障启动的时候,如果有大量用户访问,能够很稳定的接受请求。 最大线程数: 用

    2024年02月04日
    浏览(33)
  • IDEA社区版搭建Tomcat服务器并创建web项目

    创建Web项目的目录结构 可以启动Tomcat服务器 编写Servlet并访问成功 IDEA社区版没有创建Web工程的选项 IDEA社区版没有Tomcat插件 针对以上两个问题,分步解决 问题一:IDEA社区版没有创建Web工程的选项 创建普通的java项目,此处不再赘述 构建web项目的目录结构 设置编译目录 在

    2023年04月26日
    浏览(43)
  • 使用IDEA部署Web项目到本地的Tomcat服务器

    1.1 Tomcat下载与安装启动 下载地址:http://tomcat.apache.org/ (左侧Download选择下载版本) 1.1.1 安装: 1、下载好了解压到一个没有特殊符号的目录中(一般纯英文即可) 2、进入到解压的目录下找到binstartup.bat双击启动即可 tomcat需要配置JAVA_HOME环境变量,不要把bin目录也配置到JAVA

    2024年02月13日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包