springboot开启HTTPS

这篇具有很好参考价值的文章主要介绍了springboot开启HTTPS。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、前言

HTTP和HTTPS的含义以及区别

二、域名映射

三、添加SSL证书

四、Http转Https

五、内网穿透


一、前言

我们平常写完一个接口,其访问一般都是使用http协议

springboot开启HTTPS,https,网络协议,http

我们最终想要的结果是使用安全的HTTPS来访问

springboot开启HTTPS,https,网络协议,http

在我们开始实现之前,我们要先搞明白

HTTP和HTTPS的含义以及区别

HTTP(Hypertext Transfer Protocol)和HTTPS(Hypertext Transfer Protocol Secure)都是用于在网络上传输数据的协议,但它们之间存在一些关键的区别:

1、安全性

  • HTTP: 是一种不安全的协议,传输的数据是明文的,容易被中间人攻击窃听、篡改或伪造。
  • HTTPS: 在HTTP的基础上使用了安全套接字层(SSL)或传输层安全(TLS)协议,对传输的数据进行加密,提供更高的安全性。

2、加密方式

  • HTTP: 不提供数据加密,数据以纯文本形式传输。
  • HTTPS: 使用加密算法对数据进行加密,使其在传输过程中难以被窃听和解密。

3、端口

  • HTTP: 默认端口是80。
  • HTTPS: 默认端口是443。

4、证书

  • HTTP: 不需要证书。
  • HTTPS: 需要使用SSL证书,用于验证服务器的身份,确保客户端与服务器之间的

5、身份验证

  • HTTP: 不提供身份验证,任何人都可以发送请求。
  • HTTPS: 通过证书进行身份验证,确保客户端连接到正确的服务器

总体而言,HTTPS相对于HTTP更加安全,适用于需要保护用户隐私和数据完整性的场景,尤其是在进行敏感信息传输(如登录、支付)的时候。大多数现代网站都在使用HTTPS来提供更安全的通信。


二、域名映射

域名(Domain Name)是用于标识互联网上资源(如网站、服务器等)的人类可读的文本名称。它的作用主要包括以下几个方面:

  1. 方便记忆: IP地址是用于在网络中标识计算机和设备的数字标签,它们通常是一串数字,例如192.168.1.1。而域名提供了人类友好的方式来标识和记忆网站或服务器,比如www.example.com

  2. 统一资源定位(URL): 域名通常是网址(URL)的一部分。URL是用于定位和访问互联网上资源的地址,包括协议(例如HTTP或HTTPS)、域名、路径等。例如,https://www.example.com/page 中的www.example.com就是域名。

  3. 提供服务: 域名不仅仅是标识,也与服务和内容关联。当用户在浏览器中输入域名时,系统会通过域名解析将其映射到相应的IP地址,然后连接到相应的服务器,从而获取网站的服务和内容。

  4. 品牌建设: 对于企业、组织或个人而言,域名是建立在线品牌和身份的重要组成部分。选择一个有意义、易记且与品牌相关的域名可以提高品牌的可识别性和用户记忆度。

  5. 电子邮件: 域名通常也用于电子邮件地址,例如user@example.com。邮件服务器使用域名来确定邮件的发送和接收地址。

总体而言,域名是互联网上标识和访问资源的一种方便、易记的方式,为用户提供了更友好的访问体验。域名系统(DNS)负责将域名解析为对应的IP地址,使得用户能够通过简单的文本标识来访问互联网上的各种服务和内容。

这里以腾讯云为例,在这里可以购买一个域名

springboot开启HTTPS,https,网络协议,http

springboot开启HTTPS,https,网络协议,http

购买完域名之后 就可以点击域名解析,在这里映射你自己的ip地址。需要等待一段时间才会生效。

springboot开启HTTPS,https,网络协议,http

此时你既可以使用原本的本地localhost进行访问,也可以使用这个域名进行访问,如

springboot开启HTTPS,https,网络协议,http


三、添加SSL证书

有了SSL证书就可以开启HTTPS协议了,同样以腾讯云为例

springboot开启HTTPS,https,网络协议,http

我们可以申请一个免费的SSL证书

springboot开启HTTPS,https,网络协议,http

跟着它的步骤一步步来就可以了

springboot开启HTTPS,https,网络协议,http

 完成以上操作之后,将刚才的证书下载下来,我们是要在后端部署这个证书

因此选择Tomcat(JKS格式)下载

springboot开启HTTPS,https,网络协议,http

 将下载完的ssl证书放在resources目录下

 springboot开启HTTPS,https,网络协议,http

在配置文件中配置如下信息 

server:
  port: 8888 #端口配置
  ssl: #ssl配置
    enabled: true  # 默认为true
    #key-alias: alias-key # 别名(可以不进行配置)
    # 保存SSL证书的秘钥库的路径
    key-store: classpath:ssl/an1ong.online.jks
    key-password: cb70506mf37q0h
    #key-store-password: 证书密码
    key-store-type: JKS

这里要把key-storekey-password改了

key-store是你的ssl证书的路径与名字

key-password是你的证书密码,密码在下载完自带的keystorePass.txt里面

这样配置完毕之后再启动服务器,就可以使用安全的https来访问了

springboot开启HTTPS,https,网络协议,http


四、Http转Https

这个时候我们启用了https,但是会发现原本http访问就使用不了了

springboot开启HTTPS,https,网络协议,http

这个时候我们就可以添加以下配置

package com.wal.config;
import org.apache.catalina.connector.Connector;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * https配置,将http请求全部转发到https
 * @author Jacob
 */
@Configuration
public class HttpsConfig {


    @Value("${custom.http-port: 8889}")
    private Integer httpPort;

    @Bean
    public TomcatServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
        tomcat.addAdditionalTomcatConnectors(httpConnector());
        return tomcat;
    }

    @Bean
    public Connector httpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setPort(httpPort);
        return connector;
    }

}

其中

@Value("${custom.http-port: 8889}")

回去配置文件中寻找custom.http-port的配置属性,如果没有找到就是用后面的默认值8889

意思也就是说这个http也占用了一个端口,只不过你访问这个http的时候就会再跳转至https的资源

springboot开启HTTPS,https,网络协议,http


五、内网穿透

此时由于我们在解析域名的时候映射的是本地网路ip,那么这就意味着只有与我们在同一个局域网的人才可以找到并访问我们的服务器资源。

就如我们玩我的世界一样,必须在同一个互联网下才可以直接联机。

我们希望自己的服务器可以暴露在公网上,让别人就可以直接访问到。那么就要使用到内网穿透

(同样的我的世界远程联机一般都是用内网穿透来实现的)

这里推荐一个内网穿透网站SakuraFrp (natfrp.com)

springboot开启HTTPS,https,网络协议,http

springboot开启HTTPS,https,网络协议,http 

之后这个frp-now.top:47727 就映射到了 我们的localhost,并且是可以直接在公网上访问到的

springboot开启HTTPS,https,网络协议,http

然后域名这里映射也改一下,让域名映射我们的内网穿透ip,而内网穿透ip又映射我们的localhost

springboot开启HTTPS,https,网络协议,http

 

springboot开启HTTPS,https,网络协议,http 

则此时我们就实现了一个有着域名的安全的在公网上可访问的服务器文章来源地址https://www.toymoban.com/news/detail-802661.html

到了这里,关于springboot开启HTTPS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 网络协议分析-http/https/tcp/udp

    “三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生 错误”。主要目的防止 server 端一直等待,浪费资源。换句话说,即是为了保证服务端能收 接受到客户端的信息并能做出正确的应答而进行前两次(第一次和第二次)握手,为了保证客

    2024年02月11日
    浏览(50)
  • 【Linux网络】网络应用层的 http 和 https协议

    在之前学习序列化和反序列化的时候,认识到主机之间传输结构数据的时候,最好是通过某种约定将结构数据序列化成一串字符串,接收方再通过反序列化将字符串转换成结构数据。以上说的这种约定,其实可以看成是用户层通信的一种协议,是由程序猿自己定的。   实际

    2024年02月02日
    浏览(64)
  • 网络基础2(HTTP,HTTPS,传输层协议详解)

    再谈协议         在之前利用套接字进行通信的时候,我们都是利用 “字符串” 进行流式的发送接收,但是我们平常进行交流通信肯定不能只是简单的发送字符串。         比如我们用QQ进行聊天,我们不仅需要得到对方发送的消息,还要知道对方的昵称,头像等一系列数

    2024年02月13日
    浏览(54)
  • 【网络技术】【Kali Linux】Wireshark嗅探(九)安全HTTP协议(HTTPS协议)

    本次实验是基于之前的实验:Wireshark嗅探(七)(HTTP协议)进行的。本次实验使用Wireshark流量分析工具进行网络嗅探,旨在初步了解安全的HTTP协议(HTTPS协议)的工作原理。 HTTPS的含义是HTTP + SSL,即使用SSL(安全套接字)协议对通信数据进行加密。HTTP和HTTPS协议的区别(用

    2024年01月20日
    浏览(53)
  • 常见网络通信协议(http、https、ws)及安全协议(SSL、TLS、XTLS)

    文章内容删除了一大半不合适的内容,发不出来,你懂得。🥰 HTTP和HTTPS都属于 应用层协议 ,它们都是用于从万维网(WWW)服务器传输超文本到本地浏览器的传送协议。它们都是 基于 TCP/IP 协议 来传递数据的,支持 客户端-服务器模式 的通信。 HTTP和HTTPS的区别主要在于HTT

    2024年02月10日
    浏览(51)
  • 前端面试:【网络协议与性能优化】HTTP/HTTPS、TCP/IP和WebSocket

    嗨,亲爱的Web开发者!在构建现代Web应用时,了解网络协议是优化性能和确保安全性的关键。本文将深入探讨HTTP/HTTPS、TCP/IP和WebSocket这三个网络协议,帮助你理解它们的作用以及如何优化Web应用的性能。 1. HTTP/HTTPS协议: HTTP(超文本传输协议): HTTP是用于在Web上传输数据的

    2024年02月11日
    浏览(51)
  • [Java网络安全系列面试题] HTTP和HTTPS协议区别和联系都有哪些?

    2.1 HTTP特点 1.支持客户/服务器模式。( C/S 模式) 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET 、 HEAD 、 POST 。每种方法规定了客户与服务器联系的类型不同。由于 HTTP 协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快。

    2024年04月23日
    浏览(49)
  • SpringBoot + Vue2项目打包部署到服务器后,使用Nginx配置SSL证书,配置访问HTTP协议转HTTPS协议

    配置nginx.conf文件,这个文件一般在/etc/nginx/...中,由于每个人的体质不一样,也有可能在别的路径里,自己找找... 证书存放位置,可自定义存放位置 两个文件 后端配置 把.pfx拷贝到resource下,然后配置一下yml

    2024年02月02日
    浏览(75)
  • 【Linux命令详解 | wget命令】 wget命令用于从网络下载文件,支持HTTP、HTTPS和FTP协议

    在编程世界中,处理网络资源是一项关键任务,而 wget 命令就是一位可靠的助手。 wget (全名为“Web Get”)是一种用于从网络下载文件的工具,它能够处理多种协议,包括HTTP、HTTPS和FTP。作为一个博主,我们可以利用 wget 命令来获取文件、备份网站内容、自动下载资源等。

    2024年02月12日
    浏览(40)
  • 【网络应用层协议】【HTTP】详解HTTP与HTTPS、POST 请求与 GET请求 、TCP与UDP、cookie和session的区别

    目录 1. HTTP和HTTPS的区别 2. POST 请求与 GET 请求区别 3. TCP与UDP的区别 4. cookie和session的区别

    2024年04月14日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包