当前位置:

首页 > 编程开发 > SpringBoot的HTTPS配置如何实现

SpringBoot的HTTPS配置如何实现

HTTPS配置由于HTTPS具有良好的安全性,在开发中得到了越来越广泛的应用,像微信公众号、小程序等的开发都要使用HTTPS来完成。对于个人开发者而言,一个HTTPS证书的价格还是有点贵,国内有一些云服务器厂商提供免费的HTTPS证书,一个账号可以申请数个。不过在jdk中提供了一个Java数字证书管理工具keytool,在\jdkbin目录下,通过这个工具可以自己生成一个数字证书,生成命令如下:keytool-genkey-aliastomcathttps-keyalgRSA-keysize2048-ke

本文目录

    HTTPS 配置

    由于HTTPS具有良好的安全性,在开发中得到了越来越广泛的应用,像微信公众号、小程序等的开发都要使用HTTPS来完成。对于个人开发者而言,一个HTTPS 证书的价格还是有点贵,国内有一些云服务器厂商提供免费的HTTPS证书,一个账号可以申请数个。不过在jdk中提供了一个Java数字证书管理工具keytool,在\jdkbin目录下,通过这个工具可以自己生成一个数字证书,生成命令如下:

    keytool -genkey -alias tomcathttps -keyalg RSA -keysize 2048 -keystore sang.p12 -validity 365
    • genkey表示要创建一个新的密钥。

    • alias表示keystore的别名。

    • keyalg表示使用的加密算法是RSA,一种非对称加密算法。

    • keysize表示密钥的长度。

    • keystore表示生成的密钥存放位置。

    • validity表示密钥的有效时间,单位为天。

    在cmd窗口中直接执行如上命令,在执行的过程中需要输入密钥口令等信息,根据提示输入即可。命令执行完成后,会在当前用户目录下生成一个名为 sang.p12的文件,将这个文件复制到项目的根目录下,然后在application.properties中做如下配置:

    # key-store表示密钥文件名。
    server.ssl.key-store=sang.p12 
    # key-alias表示密钥别名。
    server.ssl.key-alias=tomcathttps
    #key-store-password 就是在cmd命令执行过程中输入的密码。
    server.ssl.key-store-password=123456

    配置成功后,启动项目,在浏览器中输入“https:/localhost:8080”来查看结果。注意,证书是自己生成的,不被浏览器认可,此时添加信任或者继续前进即可,如图所示。

    SpringBoot的HTTPS配置如何实现

    成功运行的结果如图

    SpringBoot的HTTPS配置如何实现

    此时,如果以 HTTP 的方式访问接口,就会访问失败,如图

    SpringBoot的HTTPS配置如何实现

    这是因为 Spring Boot 不支持同时在配置中启动 HTTP HTTPS 。这个时候可以配置请求重定向,将 HTTP 请求重定向为 HTTPS 请求。配置方式如下

    @Configuration
    public class TomcatConfig {
        @Bean
        TomcatServletWebServerFactory tomcatServletWebServerFactory() {
            TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory() {
                @Override
                protected void postProcessContext(Context context) {
                    SecurityConstraint constraint = new SecurityConstraint();
                    constraint.setUserConstraint("CONFIDENTIAL");
                    SecurityCollection collection = new SecurityCollection();
                    collection.addPattern("/*");
                    constraint.addCollection(collection);
                    context.addConstraint(constraint);
                }
            };
            factory.addAdditionalTomcatConnectors(createTomcatConnector());
            return factory;
        }
    
        private Connector createTomcatConnector() {
            Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
            connector.setScheme("http");
            connector.setPort(8080);
            connector.setSecure(false);
            connector.setRedirectPort(8081);
            return connector;
        }
    }

    这里首先配置一个TomcatServletWebServerFactory,然后添加一个Tomcat 中的Connector(监听8080端口),并将请求转发到8081上去。
    配置完成后,在浏览器中输入“http://localhost:8080/”,就会自动重定向到https://localhost:8081/ 上。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 HTTPS
    相关文章 更多
    php https webservice,PHP https访问webservice_PHP教程
    php https webservice,PHP https访问webservice_PHP教程

    PHP通过HTTPS协议调用Web服务时,由于缺少php_curl和php_openssl这两个扩展,以及它们依赖的libeay32.dll和ssleay32.dll动态链接库文件,导致简单对象访问协议客户端无法解析网络服务描述语言,从而抛出“SOAP-ERROR:ParsingWSDL”错误。启用这些扩展并加载对应的dll文件后,问题得到解决。

    一键PHP环境开启HTTPS方法
    一键PHP环境开启HTTPS方法

    首先配置SSL证书并修改Web服务器设置,使用自签名或Let'sEncrypt证书,然后在Apache或Nginx中启用SSL模块并添加虚拟主机配置,最后重启服务即可实现HTTPS访问。

    一键PHP环境生成自签名证书教程
    一键PHP环境生成自签名证书教程

    首先生成自签名证书,使用OpenSSL创建私钥、证书请求和自签证书;然后配置Apache或Nginx的SSL模块,指定证书和私钥路径;最后将证书导入系统受信任根证书颁发机构,实现本地HTTPS安全访问。

    持续控制技术解析:持久化策略全攻略
    持续控制技术解析:持久化策略全攻略

    在网络安全领域,一个完整的攻击生命周期通常包含以下7个主要步骤:Recon(侦察)、Weaponisation(武器化)、Delivery(投递)、Exploitation(利用)、Installation(安装)、Command&Control(命令与控制)和ActionsonObjectives(对目标采取行动)。其中,第5个步骤“Installation”指的是在不需要重复前4个步骤的情况下,重新获得对系统的命令和控制权。当某些操作无法进行时,可能需要考虑权限问题、UAC策略等。本文

    百度浏览器HTTPS无法访问解决方法
    百度浏览器HTTPS无法访问解决方法

    首先校准系统时间并检查安全设置,随后清除SSL状态与浏览器缓存,尝试无痕模式排除扩展干扰,更新或重装百度浏览器,再排查防火墙、DNS设置及Hosts文件,最后通过IP直连测试定位解析问题。

    国内外安全技术分享(2019年11月7日)
    国内外安全技术分享(2019年11月7日)

    确保您的恶意软件安全:使用blockdlls和ACG的保护策略!https://blog.xpnsec.com/protecting-your-malware/DarkUniverse–神秘的APT框架#27https://securelist.com/darkuniverse-the-mysterious-apt-framework-27/94897/TPscan-一键检测ThinkPHP漏洞的工具https://mp.weixin.qq.com/s/_xkZk1ztTsh1y7jP6VViGQ解

    SecureCRT下载安装教程图文详解
    SecureCRT下载安装教程图文详解

    大家好,很高兴再次与你们见面,我是你们的好朋友全栈君。本文目录一、SecureCRT简介二、SecureCRT下载指南三、SecureCRT安装步骤四、SecureCRT使用方法一、SecureCRT简介SecureCRT是一款功能强大的终端仿真软件,支持SSH(SSH1和SSH2)协议,主要用于在Windows系统下连接UNIX或Linux服务器。SecureCRT不仅支持SSH,还兼容Telnet和rlogin协议,是连接运行Windows、UNIX和VMS系统的理想工具。通过内置的VCP命令行程序,

    Linux远程连接工具推荐与使用教程
    Linux远程连接工具推荐与使用教程

    一、远程连接工具概述远程连接的用户通常分为两类:一类是系统管理员,另一类是普通用户。系统管理员主要通过远程连接来管理企业内部的网络设备或服务器,常用的方法包括telnet、SSH、webGUI以及其他远程管理软件。普通用户则主要是远程办公人员、外出人员和企业高管等,他们需要通过远程连接来操作ERP、CRM、HR等信息系统,进行查看、审批和提单等操作。本文所讨论的远程连接工具主要针对系统管理人员使用,常见的工具包括Putty、XShell、SecureCRT、SSHSecure和ShellSilent

    WCF基金会是什么?全面解析
    WCF基金会是什么?全面解析

    大家好,很高兴再次与大家见面,我是全栈君。概念:WindowsCommunicationFoundation(WCF)是由微软开发的一组数据通信的应用程序开发接口,可以简称为Windows通讯接口。它是.NET框架的一部分。简单来说,WCF是微软在VisualStudio中提供的一种通信接口,通过这个接口可以将相互独立的模块整合起来,形成一个完整的系统。它充分体现了面向服务的开发思想。优势:统一性。互操作性。安全可靠性。兼容性。举个不太恰当的例子来简要说明一下:假设有甲、乙、丙三家公司,每家公司分别

    Windows系统安装pip教程
    Windows系统安装pip教程

    大家好,很高兴再次与大家见面,我是你们的朋友全栈君。pip是Python生态系统中一个非常便捷的包管理工具,本文将详细介绍在Windows10系统下如何安装pip。下载pip:访问地址https://pypi.python.org/pypi/pip#downloads,选择tar.gz压缩包下载。目前最新版本为9.0.1,这里我们选择的是pip-9.0.1.tar.gz(包含md5和pgp校验)。点击下载即可。解压并安装:将下载的压缩包解压到工作目录(如D:\),然后在Windows命令提示符(cmd)

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。